pub struct Grid {
pub measure: MeasureId,
pub measure_name: String,
pub row_cat: Option<(CategoryId, String)>,
pub col_cat: Option<(CategoryId, String)>,
pub rows: Vec<(ItemId, String)>,
pub cols: Vec<(ItemId, String)>,
pub pages: Vec<PageDim>,
pub cells: Vec<Vec<Option<CellValue>>>,
}Expand description
One rendered pivot grid for a single measure.
Fields§
§measure: MeasureId§measure_name: String§row_cat: Option<(CategoryId, String)>Category on the rows axis (None if the measure has 0 categories).
col_cat: Option<(CategoryId, String)>Category on the columns axis (None if the measure has < 2 categories).
rows: Vec<(ItemId, String)>Row header items: (id, name). Length >= 1 (a synthetic single row when there is no row category).
cols: Vec<(ItemId, String)>Column header items: (id, name). Length >= 1.
pages: Vec<PageDim>Categories beyond the first two, pinned to a chosen item (“pages”).
cells: Vec<Vec<Option<CellValue>>>Cell values indexed [row][col]. None = empty cell. Typed
(CellValue) so non-numeric cells (Text/Bool/Date/#ERR) render
correctly, not just numbers.
Implementations§
Source§impl Grid
impl Grid
pub fn n_rows(&self) -> usize
pub fn n_cols(&self) -> usize
Sourcepub fn value_at(&self, row: usize, col: usize) -> Option<f64>
pub fn value_at(&self, row: usize, col: usize) -> Option<f64>
The numeric value at [row][col], if the cell holds a number (for the
edit-seed path). Non-numeric cells return None.
Sourcepub fn cell_at(&self, row: usize, col: usize) -> Option<&CellValue>
pub fn cell_at(&self, row: usize, col: usize) -> Option<&CellValue>
The typed cell value at [row][col].
Sourcepub fn display_at(&self, row: usize, col: usize) -> String
pub fn display_at(&self, row: usize, col: usize) -> String
The display string for [row][col] (empty for an empty cell).
Auto Trait Implementations§
impl Freeze for Grid
impl RefUnwindSafe for Grid
impl Send for Grid
impl Sync for Grid
impl Unpin for Grid
impl UnsafeUnpin for Grid
impl UnwindSafe for Grid
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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.§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.§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.§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.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreimpl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
The method of
std::ops::AddAssign, for types that do not implement AddAssign.