RedCrafter LP
RedCrafter LP

Reputation: 240

Interpolate string in const function

Im trying to make a function similar to this

pub const fn insert(num1:i32, num2:i32) -> &'static str { 
    formatcp!("n1:{}, n2:{}" , num1, num2) 
} 

But num1/num2 are not const. I think this would be possible as a macro but im not experienced in macros.

Upvotes: 5

Views: 1437

Answers (1)

Konstantin Grech
Konstantin Grech

Reputation: 433

Does it help?

macro_rules! insert {
    ($n1:expr, $n2:expr) => {
        concat!("n1: ", $n1, " , n2: ", $n2)
    };
}

const TEST_1: &str = insert!(1, 2);
const TEST_2: &str = insert!(2, 3);

fn main() {
    println!("{}", TEST_1);
    println!("{}", TEST_2);
}

Upvotes: 0

Related Questions