Crate nls_term_grid

source ·
Expand description

§nls_term_grid

CICD Crates.io Docs.rs License

This library arranges textual data in a grid format similar to ls


This library is extracted from nls-ls v0.4.0.

The Grid API and Implementation is inspired by ogham/term_grid


§Example

use nls_term_grid::{Grid, Direction, Alignment};

type GridCell = nls_term_grid::GridCell<String>;

let cells: [GridCell; 15] = [
    GridCell::from(String::from("file10")),
    GridCell::from(String::from("file20")),
    GridCell::from(String::from("file3")),
    GridCell::from(String::from("file400")),
    GridCell::from(String::from("file5")),

    GridCell::from(String::from("file100")),
    GridCell::from(String::from("file2")),
    GridCell::from(String::from("file30")),
    GridCell::from(String::from("file4")),
    GridCell::from(String::from("file500")),

    GridCell::from(String::from("file1")),
    GridCell::from(String::from("file200")),
    GridCell::from(String::from("file300")),
    GridCell::from(String::from("file40")),
    GridCell::from(String::from("file50")),
];

let grid = Grid::new("  ", Direction::LeftToRight, &cells);
let display = grid.fit_into_width(35).unwrap();

assert_eq!(
    display.to_string(),
    "file10   file20   file3   file400\n\
     file5    file100  file2   file30\n\
     file4    file500  file1   file200\n\
     file300  file40   file50\n"
);

Structs§

  • The displayable represntation of Grid
  • The main struct used to format GridCells in a grid like format similar to ls
  • A textual string containing its display width and alignment

Enums§

  • Indicates alignment of contents when padding is required
  • Indicates direction GridCells should be written in