Trait text_grid::GridSchema

source ·
pub trait GridSchema {
    type Source: ?Sized;

    // Required method
    fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>);
}
Expand description

Column definitions.

Define columns using CellsFormatter.

To dynamically create a GridSchema, use grid_schema.

Examples

use text_grid::*;

struct MyGridSchema {
    len: usize,
}

impl GridSchema for MyGridSchema {
    type Source = [u32];
    fn fmt(&self, f: &mut CellsFormatter<&[u32]>) {
        for i in 0..self.len {
            f.column(i, |s| s[i]);
        }
    }
}

let mut g = Grid::new_with_schema(MyGridSchema { len: 3 });
g.push(&[1, 2, 3]);
g.push(&[4, 5, 6]);

assert_eq!(format!("\n{g}"), r#"
 0 | 1 | 2 |
---|---|---|
 1 | 2 | 3 |
 4 | 5 | 6 |
"#);

Required Associated Types§

Required Methods§

source

fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>)

Define column information. see CellsFormatter for details.

Implementations on Foreign Types§

source§

impl<T0, T1, T2, T3, T4, T5> GridSchema for (T0, T1, T2, T3, T4, T5)where T0: GridSchema, T0::Source: Sized, T1: GridSchema, T1::Source: Sized, T2: GridSchema, T2::Source: Sized, T3: GridSchema, T3::Source: Sized, T4: GridSchema, T4::Source: Sized, T5: GridSchema, T5::Source: Sized,

§

type Source = (<T0 as GridSchema>::Source, <T1 as GridSchema>::Source, <T2 as GridSchema>::Source, <T3 as GridSchema>::Source, <T4 as GridSchema>::Source, <T5 as GridSchema>::Source)

source§

fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> GridSchema for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)where T0: GridSchema, T0::Source: Sized, T1: GridSchema, T1::Source: Sized, T2: GridSchema, T2::Source: Sized, T3: GridSchema, T3::Source: Sized, T4: GridSchema, T4::Source: Sized, T5: GridSchema, T5::Source: Sized, T6: GridSchema, T6::Source: Sized, T7: GridSchema, T7::Source: Sized, T8: GridSchema, T8::Source: Sized, T9: GridSchema, T9::Source: Sized, T10: GridSchema, T10::Source: Sized, T11: GridSchema, T11::Source: Sized, T12: GridSchema, T12::Source: Sized, T13: GridSchema, T13::Source: Sized,

§

type Source = (<T0 as GridSchema>::Source, <T1 as GridSchema>::Source, <T2 as GridSchema>::Source, <T3 as GridSchema>::Source, <T4 as GridSchema>::Source, <T5 as GridSchema>::Source, <T6 as GridSchema>::Source, <T7 as GridSchema>::Source, <T8 as GridSchema>::Source, <T9 as GridSchema>::Source, <T10 as GridSchema>::Source, <T11 as GridSchema>::Source, <T12 as GridSchema>::Source, <T13 as GridSchema>::Source)

source§

fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>)

source§

impl<T: GridSchema> GridSchema for [T]

§

type Source = <T as GridSchema>::Source

source§

fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>)

source§

impl<T0> GridSchema for (T0,)where T0: GridSchema, T0::Source: Sized,

§

type Source = (<T0 as GridSchema>::Source,)

source§

fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> GridSchema for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)where T0: GridSchema, T0::Source: Sized, T1: GridSchema, T1::Source: Sized, T2: GridSchema, T2::Source: Sized, T3: GridSchema, T3::Source: Sized, T4: GridSchema, T4::Source: Sized, T5: GridSchema, T5::Source: Sized, T6: GridSchema, T6::Source: Sized, T7: GridSchema, T7::Source: Sized, T8: GridSchema, T8::Source: Sized, T9: GridSchema, T9::Source: Sized, T10: GridSchema, T10::Source: Sized,

§

type Source = (<T0 as GridSchema>::Source, <T1 as GridSchema>::Source, <T2 as GridSchema>::Source, <T3 as GridSchema>::Source, <T4 as GridSchema>::Source, <T5 as GridSchema>::Source, <T6 as GridSchema>::Source, <T7 as GridSchema>::Source, <T8 as GridSchema>::Source, <T9 as GridSchema>::Source, <T10 as GridSchema>::Source)

source§

fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>)

source§

impl<T0, T1, T2> GridSchema for (T0, T1, T2)where T0: GridSchema, T0::Source: Sized, T1: GridSchema, T1::Source: Sized, T2: GridSchema, T2::Source: Sized,

§

type Source = (<T0 as GridSchema>::Source, <T1 as GridSchema>::Source, <T2 as GridSchema>::Source)

source§

fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> GridSchema for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)where T0: GridSchema, T0::Source: Sized, T1: GridSchema, T1::Source: Sized, T2: GridSchema, T2::Source: Sized, T3: GridSchema, T3::Source: Sized, T4: GridSchema, T4::Source: Sized, T5: GridSchema, T5::Source: Sized, T6: GridSchema, T6::Source: Sized, T7: GridSchema, T7::Source: Sized, T8: GridSchema, T8::Source: Sized, T9: GridSchema, T9::Source: Sized,

§

type Source = (<T0 as GridSchema>::Source, <T1 as GridSchema>::Source, <T2 as GridSchema>::Source, <T3 as GridSchema>::Source, <T4 as GridSchema>::Source, <T5 as GridSchema>::Source, <T6 as GridSchema>::Source, <T7 as GridSchema>::Source, <T8 as GridSchema>::Source, <T9 as GridSchema>::Source)

source§

fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>)

source§

impl<T0, T1, T2, T3, T4> GridSchema for (T0, T1, T2, T3, T4)where T0: GridSchema, T0::Source: Sized, T1: GridSchema, T1::Source: Sized, T2: GridSchema, T2::Source: Sized, T3: GridSchema, T3::Source: Sized, T4: GridSchema, T4::Source: Sized,

§

type Source = (<T0 as GridSchema>::Source, <T1 as GridSchema>::Source, <T2 as GridSchema>::Source, <T3 as GridSchema>::Source, <T4 as GridSchema>::Source)

source§

fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>)

source§

impl<T0, T1, T2, T3, T4, T5, T6> GridSchema for (T0, T1, T2, T3, T4, T5, T6)where T0: GridSchema, T0::Source: Sized, T1: GridSchema, T1::Source: Sized, T2: GridSchema, T2::Source: Sized, T3: GridSchema, T3::Source: Sized, T4: GridSchema, T4::Source: Sized, T5: GridSchema, T5::Source: Sized, T6: GridSchema, T6::Source: Sized,

§

type Source = (<T0 as GridSchema>::Source, <T1 as GridSchema>::Source, <T2 as GridSchema>::Source, <T3 as GridSchema>::Source, <T4 as GridSchema>::Source, <T5 as GridSchema>::Source, <T6 as GridSchema>::Source)

source§

fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> GridSchema for (T0, T1, T2, T3, T4, T5, T6, T7, T8)where T0: GridSchema, T0::Source: Sized, T1: GridSchema, T1::Source: Sized, T2: GridSchema, T2::Source: Sized, T3: GridSchema, T3::Source: Sized, T4: GridSchema, T4::Source: Sized, T5: GridSchema, T5::Source: Sized, T6: GridSchema, T6::Source: Sized, T7: GridSchema, T7::Source: Sized, T8: GridSchema, T8::Source: Sized,

§

type Source = (<T0 as GridSchema>::Source, <T1 as GridSchema>::Source, <T2 as GridSchema>::Source, <T3 as GridSchema>::Source, <T4 as GridSchema>::Source, <T5 as GridSchema>::Source, <T6 as GridSchema>::Source, <T7 as GridSchema>::Source, <T8 as GridSchema>::Source)

source§

fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>)

source§

impl<T: GridSchema> GridSchema for Vec<T>

§

type Source = <T as GridSchema>::Source

source§

fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> GridSchema for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)where T0: GridSchema, T0::Source: Sized, T1: GridSchema, T1::Source: Sized, T2: GridSchema, T2::Source: Sized, T3: GridSchema, T3::Source: Sized, T4: GridSchema, T4::Source: Sized, T5: GridSchema, T5::Source: Sized, T6: GridSchema, T6::Source: Sized, T7: GridSchema, T7::Source: Sized, T8: GridSchema, T8::Source: Sized, T9: GridSchema, T9::Source: Sized, T10: GridSchema, T10::Source: Sized, T11: GridSchema, T11::Source: Sized, T12: GridSchema, T12::Source: Sized,

§

type Source = (<T0 as GridSchema>::Source, <T1 as GridSchema>::Source, <T2 as GridSchema>::Source, <T3 as GridSchema>::Source, <T4 as GridSchema>::Source, <T5 as GridSchema>::Source, <T6 as GridSchema>::Source, <T7 as GridSchema>::Source, <T8 as GridSchema>::Source, <T9 as GridSchema>::Source, <T10 as GridSchema>::Source, <T11 as GridSchema>::Source, <T12 as GridSchema>::Source)

source§

fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>)

source§

impl<T0, T1> GridSchema for (T0, T1)where T0: GridSchema, T0::Source: Sized, T1: GridSchema, T1::Source: Sized,

§

type Source = (<T0 as GridSchema>::Source, <T1 as GridSchema>::Source)

source§

fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>)

source§

impl<T0, T1, T2, T3> GridSchema for (T0, T1, T2, T3)where T0: GridSchema, T0::Source: Sized, T1: GridSchema, T1::Source: Sized, T2: GridSchema, T2::Source: Sized, T3: GridSchema, T3::Source: Sized,

§

type Source = (<T0 as GridSchema>::Source, <T1 as GridSchema>::Source, <T2 as GridSchema>::Source, <T3 as GridSchema>::Source)

source§

fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>)

source§

impl<T: ?Sized + GridSchema> GridSchema for &T

§

type Source = <T as GridSchema>::Source

source§

fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> GridSchema for (T0, T1, T2, T3, T4, T5, T6, T7)where T0: GridSchema, T0::Source: Sized, T1: GridSchema, T1::Source: Sized, T2: GridSchema, T2::Source: Sized, T3: GridSchema, T3::Source: Sized, T4: GridSchema, T4::Source: Sized, T5: GridSchema, T5::Source: Sized, T6: GridSchema, T6::Source: Sized, T7: GridSchema, T7::Source: Sized,

§

type Source = (<T0 as GridSchema>::Source, <T1 as GridSchema>::Source, <T2 as GridSchema>::Source, <T3 as GridSchema>::Source, <T4 as GridSchema>::Source, <T5 as GridSchema>::Source, <T6 as GridSchema>::Source, <T7 as GridSchema>::Source)

source§

fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> GridSchema for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)where T0: GridSchema, T0::Source: Sized, T1: GridSchema, T1::Source: Sized, T2: GridSchema, T2::Source: Sized, T3: GridSchema, T3::Source: Sized, T4: GridSchema, T4::Source: Sized, T5: GridSchema, T5::Source: Sized, T6: GridSchema, T6::Source: Sized, T7: GridSchema, T7::Source: Sized, T8: GridSchema, T8::Source: Sized, T9: GridSchema, T9::Source: Sized, T10: GridSchema, T10::Source: Sized, T11: GridSchema, T11::Source: Sized, T12: GridSchema, T12::Source: Sized, T13: GridSchema, T13::Source: Sized, T14: GridSchema, T14::Source: Sized, T15: GridSchema, T15::Source: Sized,

§

type Source = (<T0 as GridSchema>::Source, <T1 as GridSchema>::Source, <T2 as GridSchema>::Source, <T3 as GridSchema>::Source, <T4 as GridSchema>::Source, <T5 as GridSchema>::Source, <T6 as GridSchema>::Source, <T7 as GridSchema>::Source, <T8 as GridSchema>::Source, <T9 as GridSchema>::Source, <T10 as GridSchema>::Source, <T11 as GridSchema>::Source, <T12 as GridSchema>::Source, <T13 as GridSchema>::Source, <T14 as GridSchema>::Source, <T15 as GridSchema>::Source)

source§

fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> GridSchema for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)where T0: GridSchema, T0::Source: Sized, T1: GridSchema, T1::Source: Sized, T2: GridSchema, T2::Source: Sized, T3: GridSchema, T3::Source: Sized, T4: GridSchema, T4::Source: Sized, T5: GridSchema, T5::Source: Sized, T6: GridSchema, T6::Source: Sized, T7: GridSchema, T7::Source: Sized, T8: GridSchema, T8::Source: Sized, T9: GridSchema, T9::Source: Sized, T10: GridSchema, T10::Source: Sized, T11: GridSchema, T11::Source: Sized, T12: GridSchema, T12::Source: Sized, T13: GridSchema, T13::Source: Sized, T14: GridSchema, T14::Source: Sized,

§

type Source = (<T0 as GridSchema>::Source, <T1 as GridSchema>::Source, <T2 as GridSchema>::Source, <T3 as GridSchema>::Source, <T4 as GridSchema>::Source, <T5 as GridSchema>::Source, <T6 as GridSchema>::Source, <T7 as GridSchema>::Source, <T8 as GridSchema>::Source, <T9 as GridSchema>::Source, <T10 as GridSchema>::Source, <T11 as GridSchema>::Source, <T12 as GridSchema>::Source, <T13 as GridSchema>::Source, <T14 as GridSchema>::Source)

source§

fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>)

source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> GridSchema for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)where T0: GridSchema, T0::Source: Sized, T1: GridSchema, T1::Source: Sized, T2: GridSchema, T2::Source: Sized, T3: GridSchema, T3::Source: Sized, T4: GridSchema, T4::Source: Sized, T5: GridSchema, T5::Source: Sized, T6: GridSchema, T6::Source: Sized, T7: GridSchema, T7::Source: Sized, T8: GridSchema, T8::Source: Sized, T9: GridSchema, T9::Source: Sized, T10: GridSchema, T10::Source: Sized, T11: GridSchema, T11::Source: Sized,

§

type Source = (<T0 as GridSchema>::Source, <T1 as GridSchema>::Source, <T2 as GridSchema>::Source, <T3 as GridSchema>::Source, <T4 as GridSchema>::Source, <T5 as GridSchema>::Source, <T6 as GridSchema>::Source, <T7 as GridSchema>::Source, <T8 as GridSchema>::Source, <T9 as GridSchema>::Source, <T10 as GridSchema>::Source, <T11 as GridSchema>::Source)

source§

fn fmt(&self, f: &mut CellsFormatter<'_, &Self::Source>)

Implementors§