Skip to content
/ constime Public

Zig's comptime for Rust. Allows you to incorporate side effects into your `const` code.

License

Notifications You must be signed in to change notification settings

DvvCz/constime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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], and must be explicitly imported using extern crate.

You will also need a build.rs file in order to force [build-dependencies] 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()
		}
	);
}