reflexive

Crates.ioreflexive
lib.rsreflexive
version0.4.1
sourcesrc
created_at2023-05-25 14:10:20.204796
updated_at2023-06-18 09:59:01.678206
descriptionHandy way to evaluate at compile-time any Rust expression
homepage
repositoryhttps://github.com/yvan-sraka/reflexive
max_upload_size
id874324
size23,508
Yvan Sraka (yvan-sraka)

documentation

README

reflexive

A magical meta function that evaluate (at compile-time if used inside a macro which is the point of taking a TokenStream input) any Rust expr!

Example

use reflexive::Sandbox;
use quote::quote;

let test = Sandbox::new("calc").unwrap();
let x: u32 = test.eval(quote! { 2 + 2 }).unwrap();
assert!(x == 4);

This library indeed is not what would benefit the most your crate build time, but it was still design in mind with the will of caching sandbox compilation.

Acknowledgments

⚠️ This is still a working experiment, not yet production ready.

This project was part of a work assignment as an IOG contractor.

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Commit count: 11

cargo fmt