5 unstable releases
new 0.3.0 | Jan 18, 2025 |
---|---|
0.2.2 | Jan 6, 2023 |
0.2.1 | Jan 6, 2023 |
0.2.0 | Jan 6, 2023 |
0.1.0 | Jan 6, 2023 |
#328 in Procedural macros
9KB
95 lines
constime
Zig's comptime
for Rust, with zero dependencies.
Usage
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
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.