Skip to main content

Crate constime

Crate constime 

Source
Expand description

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 by creating temporary binaries running each of your constime! invocations, stored in std::env::temp_dir().join("constime")

Macros§

comptime

constime