https://github.com/dvvcz/constime
Zig's comptime for Rust, with zero dependencies.
https://github.com/dvvcz/constime
compile-time comptime macro metaprogramming proc-macro rust
Last synced: about 2 months ago
JSON representation
Zig's comptime for Rust, with zero dependencies.
- Host: GitHub
- URL: https://github.com/dvvcz/constime
- Owner: DvvCz
- License: mit
- Created: 2023-01-06T04:42:41.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-01-18T05:30:37.000Z (5 months ago)
- Last Synced: 2025-04-01T17:57:58.763Z (3 months ago)
- Topics: compile-time, comptime, macro, metaprogramming, proc-macro, rust
- Language: Rust
- Homepage: https://docs.rs/constime
- Size: 14.6 KB
- Stars: 16
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
constime
Zig'scomptime
for Rust, with zero dependencies.## Usage
```bash
cargo add constime
```Dependencies in `comptime!` can be stored in either `[dependencies]` or `[build-dependencies]`.
If you use build dependencies, you will need to explicitly link with `extern crate` and a `build.rs` file to force them to compile.
## Example
```rust
fn main() {
use constime::comptime;// Let's use a pure-build time dependency
println!("Here's a fact about the number 5: {}", comptime! {
extern crate ureq;ureq::get("http://numbersapi.com/5/math")
.call()
.unwrap()
.into_string()
.unwrap()
});// Standard library works fine too.
println!(
"Compiled {} seconds after unix epoch.",
comptime! {
std::time::SystemTime::now()
.duration_since(std::time::UNIX_EPOCH)
.expect("Time went backwards")
.as_secs()
}
);
}
```## Note
**You should get autocomplete and error feedback when using the macro.**
This works with temporary files, which currently aren't automatically cleared.
If you notice your project getting a little large, periodically run `cargo clean` to remove these.