Macro cl_format

Source
macro_rules! cl_format {
    ($control_str:expr) => { ... };
    ($control_str:expr, $($ele:expr),*) => { ... };
}
Expand description

cl_format! is the macro for quick using cl-format

cl_format!(control_str, &a, &b, &c) => {
     let c = control_str::ControlStr::new("~a, ~a, ~a").expect("making control string has issue");
     let a = Into::<
            tildes::Args<'_>,
        >::into([
            &1 as &dyn tildes::TildeAble,
            &2 as &dyn tildes::TildeAble,
            &3 as &dyn tildes::TildeAble,
        ]);
        c.reveal(a)
}

For example:

let l = vec![tilde!(&1), &2, &3, &4];
let a = cl_format!("~{~a~#[~;, and ~:;, ~]~}", &l);
assert_eq!(String::from("1, 2, 3, and 4"), a.unwrap());