interpol

String interpolation macros for rust

Usage

Macros provided by this crate correspond to std's formatting macros (format,print, println, eprint, eprintln, ...).

You can use these macros just same as std's ones.

```rust use interpol::println;

let a = 3; let b = 4; println!("{a} times {b} is {a * b}."); // => "3 times 4 is 12." ```

It is also able to specify formatting option:

```rust let pi = 3.14; println!("{pi:.10}"); // => "3.1400000000" println!("{123:x}"); // => "7b"

let v = vec![1, 2, 3]; println!("{v:?}"); // => "[1, 2, 3]" ```

Correctly handles unicode characters:

rust let world = "世界"; println!("ハロー {world}"); // => "ハロー 世界"

It is able to write expressions:

```rust println!("PI = {std::f64::consts::PI:.10}"); // => "PI = 3.1415926536"

println!("PI = { 1.0_f64.atan() * 4.0 :.10}"); // => "PI = 3.1415926536" ```

You can also write nested block expressions:

```rust println!("{ { let t = 123; t * t } }"); // => "15129"

println!("{{ let t = 123; t * t }}"); // "{{" and "}}" is escaped so the result is: // => "{ let t = 123; t * t }"

```