pub struct CellGrid<'a> {
pub rows: usize,
pub cols: usize,
pub cells: &'a [Cell],
pub style: TextStyle,
pub cursor: Option<(usize, usize, CursorShape, Color)>,
pub origin_line: u64,
}Expand description
A grid to draw: the cells in row-major order (rows × cols of them;
fewer draw as blank), the style the glyphs are shaped in (size,
line_height as the cell height, family / font), and the cursor.
Fields§
§rows: usize§cols: usize§cells: &'a [Cell]§style: TextStyle§cursor: Option<(usize, usize, CursorShape, Color)>(row, col, shape, colour).
origin_line: u64The absolute line number of row 0: where this screenful sits in the app’s own history.
A grid is one screenful and the scrollback behind it is the app’s, so a row number is not an address: it means a different line after every scroll. Stamping this makes a selection’s ends absolute, and a terminal that scrolls under a selection keeps it. An app that never sets it gets 0 and a selection that is correct only while it does not scroll, which is the honest reading of saying nothing.
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for CellGrid<'a>
impl<'a> RefUnwindSafe for CellGrid<'a>
impl<'a> Send for CellGrid<'a>
impl<'a> Sync for CellGrid<'a>
impl<'a> Unpin for CellGrid<'a>
impl<'a> UnsafeUnpin for CellGrid<'a>
impl<'a> UnwindSafe for CellGrid<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.