constime

Crates.ioconstime
lib.rsconstime
version0.4.1
created_at2023-01-06 07:04:28.512633+00
updated_at2025-10-09 01:37:58.905549+00
descriptionZig's comptime for Rust with zero dependencies. Mostly something to play around with until more stuff is const fn.
homepage
repositoryhttps://github.com/DvvCz/Constime
max_upload_size
id752119
size25,307
Oncelock (codebycruz)

documentation

README

constime

Zig's comptime for Rust, with zero dependencies.

GitHub Actions Workflow Status Crates.io Version GitHub Release

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")

Commit count: 12

cargo fmt