5 unstable releases
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 |
#339 in Procedural macros
130 downloads per month
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.