inline-rust

Crates.ioinline-rust
lib.rsinline-rust
version1.0.0
sourcesrc
created_at2021-11-22 21:43:47.953692
updated_at2021-11-22 21:43:47.953692
descriptionA stupid macro that compiles and executes Rust and spits the output directly into your Rust code
homepage
repositoryhttps://github.com/WilliamVenner/inline-rust
max_upload_size
id485869
size12,118
William (WilliamVenner)

documentation

README

crates.io docs.rs license

inline-rust

This is a stupid macro inspired by inline-python that compiles and executes Rust and spits the output directly into your Rust code.

There is a use case of using it to evaluate advanced "const" expressions, see the example below... if you dare.

Usage

[dependencies]
inline-rust = "*"

Example

// Compiles using cargo
const CONST_HASH: &'static str = inline_rust!(
    r#"
        [dependencies]
        sha2 = "0.9.8"
    "#,
    {
        use sha2::Digest;

        let mut sum: i32 = 0;
        for n in 0..30 {
            sum += n;
        }

        format!("\"{:x}\"", sha2::Sha256::digest(&sum.to_ne_bytes()))
    }
);

// Compiles using rustc
const CONST_FOR_LOOP: i32 = inline_rust!({
    let mut sum: i32 = 0;
    for n in 0..30 {
        sum += n;
    }
    format!("{}", sum)
});
Commit count: 7

cargo fmt