Macro text_grid::cells_f

source ·
macro_rules! cells_f {
    ($($t:tt)*) => { ... };
}
Expand description

Create Cells for float numbers via runtime expression interpolation.

§Examples

use text_grid::*;
let s = cells_schema::<f64>(|f| {
    f.column("",      |x| cell!("{x:e}"));
    f.column("e",     |x| cells_f!("{x:e}"));
    f.column(".2e",   |x| cells_f!("{x:.2e}"));
    f.column("E",     |x| cells_f!("{x:E}"));
    f.column("debug", |x| cells_f!("{x:?}"));
});

let g = to_grid_with_schema(vec![1.0, 0.95, 123.45, 0.000001, 1.0e-20, 10000000000.0], s);
assert_eq!(format!("\n{g}"), OUTPUT);

const OUTPUT: &str = r"
          |      e       |    .2e     |      E       |        debug         |
----------|--------------|------------|--------------|----------------------|
 1e0      | 1      e   0 | 1.00 e   0 | 1      E   0 |           1.0        |
 9.5e-1   | 9.5    e  -1 | 9.50 e  -1 | 9.5    E  -1 |           0.95       |
 1.2345e2 | 1.2345 e   2 | 1.23 e   2 | 1.2345 E   2 |         123.45       |
 1e-6     | 1      e  -6 | 1.00 e  -6 | 1      E  -6 |           1    e  -6 |
 1e-20    | 1      e -20 | 1.00 e -20 | 1      E -20 |           1    e -20 |
 1e10     | 1      e  10 | 1.00 e  10 | 1      E  10 | 10000000000.0        |
";