Struct nu_term_grid::grid::Grid

source ·
pub struct Grid { /* private fields */ }
Expand description

Everything needed to format the cells with the grid options.

For more information, see the grid crate documentation.

Implementations§

source§

impl Grid

source

pub fn new(options: GridOptions) -> Self

Creates a new grid view with the given options.

Examples found in repository?
examples/grid_demo.rs (lines 14-17)
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
fn main() {
    let mut grid = Grid::new(GridOptions {
        direction: Direction::TopToBottom,
        filling: Filling::Text(" | ".into()),
    });

    for i in 0..48 {
        let mut cell = Cell::from(format!("{}", 2_isize.pow(i)));
        cell.alignment = Alignment::Right;
        grid.add(cell)
    }

    if let Some(grid_display) = grid.fit_into_width(80) {
        println!("{grid_display}");
    } else {
        println!("Couldn't fit grid into 80 columns!");
    }
}
source

pub fn reserve(&mut self, additional: usize)

Reserves space in the vector for the given number of additional cells to be added. (See the Vec::reserve function.)

source

pub fn add(&mut self, cell: Cell)

Adds another cell onto the vector.

Examples found in repository?
examples/grid_demo.rs (line 22)
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
fn main() {
    let mut grid = Grid::new(GridOptions {
        direction: Direction::TopToBottom,
        filling: Filling::Text(" | ".into()),
    });

    for i in 0..48 {
        let mut cell = Cell::from(format!("{}", 2_isize.pow(i)));
        cell.alignment = Alignment::Right;
        grid.add(cell)
    }

    if let Some(grid_display) = grid.fit_into_width(80) {
        println!("{grid_display}");
    } else {
        println!("Couldn't fit grid into 80 columns!");
    }
}
source

pub fn fit_into_width(&self, maximum_width: Width) -> Option<Display<'_>>

Returns a displayable grid that’s been packed to fit into the given width in the fewest number of rows.

Returns None if any of the cells has a width greater than the maximum width.

Examples found in repository?
examples/grid_demo.rs (line 25)
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
fn main() {
    let mut grid = Grid::new(GridOptions {
        direction: Direction::TopToBottom,
        filling: Filling::Text(" | ".into()),
    });

    for i in 0..48 {
        let mut cell = Cell::from(format!("{}", 2_isize.pow(i)));
        cell.alignment = Alignment::Right;
        grid.add(cell)
    }

    if let Some(grid_display) = grid.fit_into_width(80) {
        println!("{grid_display}");
    } else {
        println!("Couldn't fit grid into 80 columns!");
    }
}
source

pub fn fit_into_columns(&self, num_columns: usize) -> Display<'_>

Returns a displayable grid with the given number of columns, and no maximum width.

Trait Implementations§

source§

impl Debug for Grid

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for Grid

source§

fn eq(&self, other: &Grid) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for Grid

source§

impl StructuralPartialEq for Grid

Auto Trait Implementations§

§

impl RefUnwindSafe for Grid

§

impl Send for Grid

§

impl Sync for Grid

§

impl Unpin for Grid

§

impl UnwindSafe for Grid

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.