pub struct GridBuf<Storage, Pos, const DIMS: usize>where
Pos: GridPos<DIMS>,{ /* private fields */ }
Expand description
Multi dimensional abstraction over a single dimensional collection
This allows a simple one-dimensional collection to be accessed in a multi-dimensional way. It
wraps a backing collection which implements GridStorage
, and takes indexes which implement
GridPos
.
Implementations§
source§impl<Storage, Pos, const DIMS: usize> GridBuf<Storage, Pos, DIMS>where
Storage: GridStorage + Clone,
Pos: GridPos<DIMS>,
impl<Storage, Pos, const DIMS: usize> GridBuf<Storage, Pos, DIMS>where Storage: GridStorage + Clone, Pos: GridPos<DIMS>,
pub fn wrap_range(storage: Storage, start: Pos, end: Pos) -> NumResult<Self>
pub fn wrap_size(storage: Storage, size: Pos) -> Self
source§impl<Storage, Pos, const DIMS: usize> GridBuf<Storage, Pos, DIMS>where
Storage: GridStorage + Clone,
Pos: GridPos<DIMS>,
impl<Storage, Pos, const DIMS: usize> GridBuf<Storage, Pos, DIMS>where Storage: GridStorage + Clone, Pos: GridPos<DIMS>,
source§impl<Storage, Pos, const DIMS: usize> GridBuf<Storage, Pos, DIMS>where
Storage: GridStorage + Clone,
Pos: GridPos<DIMS>,
impl<Storage, Pos, const DIMS: usize> GridBuf<Storage, Pos, DIMS>where Storage: GridStorage + Clone, Pos: GridPos<DIMS>,
source§impl<Item, Pos, const DIMS: usize> GridBuf<Vec<Item>, Pos, DIMS>where
Item: Default,
Pos: GridPos<DIMS>,
impl<Item, Pos, const DIMS: usize> GridBuf<Vec<Item>, Pos, DIMS>where Item: Default, Pos: GridPos<DIMS>,
source§impl<Storage, Pos, const DIMS: usize> GridBuf<Storage, Pos, DIMS>where
Storage: GridStorageMut + Clone,
Pos: GridPos<DIMS>,
impl<Storage, Pos, const DIMS: usize> GridBuf<Storage, Pos, DIMS>where Storage: GridStorageMut + Clone, Pos: GridPos<DIMS>,
source§impl<Storage, Pos> GridBuf<Storage, Pos, 2>where
Storage: GridStorage,
Storage::Item: Display,
Pos: GridPosDisplay,
impl<Storage, Pos> GridBuf<Storage, Pos, 2>where Storage: GridStorage, Storage::Item: Display, Pos: GridPosDisplay,
pub fn display_with_delim<Delim: Display>( &self, delim: Delim, formatter: &mut Formatter<'_> ) -> Result
source§impl<'inp, Storage, Pos> GridBuf<Storage, Pos, 2>where
Pos: GridPosParse,
Storage: Clone + FromIterator<Storage::Item> + GridStorage,
Storage::Item: Clone + Default + FromParser<'inp>,
impl<'inp, Storage, Pos> GridBuf<Storage, Pos, 2>where Pos: GridPosParse, Storage: Clone + FromIterator<Storage::Item> + GridStorage, Storage::Item: Clone + Default + FromParser<'inp>,
pub fn parse_with_delim_and_fn( parser: &mut Parser<'inp>, delim: impl ParseDelimiter, default_fn: impl Fn() -> Storage::Item, parse_fn: impl Fn(&mut Parser<'inp>) -> ParseResult<Storage::Item> + Clone ) -> ParseResult<Self>
pub fn parse_with_delim( parser: &mut Parser<'inp>, default_fn: impl Fn() -> Storage::Item, delim: impl ParseDelimiter ) -> ParseResult<Self>
pub fn parse_with_fn( parser: &mut Parser<'inp>, default_fn: impl Fn() -> Storage::Item, parse_fn: impl Fn(&mut Parser<'inp>) -> ParseResult<Storage::Item> + Clone ) -> ParseResult<Self>
source§impl<'grd, Storage, Pos, const DIMS: usize> GridBuf<Storage, Pos, DIMS>where
Storage: GridStorage + Clone + FromIterator<<Storage as GridStorage>::Item> + 'grd,
Storage::Item: Default,
&'grd Storage: GridStorageIntoIter,
Pos: GridPos<DIMS>,
impl<'grd, Storage, Pos, const DIMS: usize> GridBuf<Storage, Pos, DIMS>where Storage: GridStorage + Clone + FromIterator<<Storage as GridStorage>::Item> + 'grd, Storage::Item: Default, &'grd Storage: GridStorageIntoIter, Pos: GridPos<DIMS>,
pub fn resize(&'grd self, start: Pos, end: Pos) -> NumResult<Self>where <Storage as GridStorage>::Item: Default,
pub fn extend_in_place( &'grd self, amts: [(Pos::Coord, Pos::Coord); DIMS] ) -> NumResult<Self>where <Storage as GridStorage>::Item: Default,
Trait Implementations§
source§impl<Storage: Clone, Pos, const DIMS: usize> Clone for GridBuf<Storage, Pos, DIMS>where
Pos: GridPos<DIMS> + Clone,
impl<Storage: Clone, Pos, const DIMS: usize> Clone for GridBuf<Storage, Pos, DIMS>where Pos: GridPos<DIMS> + Clone,
source§impl<Storage, Pos, const DIMS: usize> Debug for GridBuf<Storage, Pos, DIMS>where
Pos: GridPos<DIMS>,
impl<Storage, Pos, const DIMS: usize> Debug for GridBuf<Storage, Pos, DIMS>where Pos: GridPos<DIMS>,
source§impl<Storage, Pos> Display for GridBuf<Storage, Pos, 2>where
Storage: GridStorage,
Storage::Item: Display,
Pos: GridPosDisplay,
impl<Storage, Pos> Display for GridBuf<Storage, Pos, 2>where Storage: GridStorage, Storage::Item: Display, Pos: GridPosDisplay,
source§impl<'inp, Storage, Pos> FromParser<'inp> for GridBuf<Storage, Pos, 2>where
Pos: GridPosParse,
Storage: Clone + FromIterator<Storage::Item> + GridStorage,
Storage::Item: Clone + Default + FromParser<'inp>,
impl<'inp, Storage, Pos> FromParser<'inp> for GridBuf<Storage, Pos, 2>where Pos: GridPosParse, Storage: Clone + FromIterator<Storage::Item> + GridStorage, Storage::Item: Clone + Default + FromParser<'inp>,
source§impl<'grd, Storage, Pos, const DIMS: usize> GridView<Pos, DIMS> for &'grd GridBuf<Storage, Pos, DIMS>where
Pos: GridPos<DIMS>,
Storage: GridStorage,
impl<'grd, Storage, Pos, const DIMS: usize> GridView<Pos, DIMS> for &'grd GridBuf<Storage, Pos, DIMS>where Pos: GridPos<DIMS>, Storage: GridStorage,
type Item = <Storage as GridStorage>::Item
type Cursors = GridCursorIter<Pos, DIMS>
fn start(self) -> Pos
fn end(self) -> Pos
fn size(self) -> Pos
fn get_trusted(self, _native: Pos, idx: usize) -> Storage::Item
fn cursors(self) -> GridCursorIter<Pos, DIMS> ⓘ
fn len(self) -> usize
fn is_empty(self) -> bool
fn keys(self) -> GridKeysIter<Pos, DIMS> ⓘ
fn first_key(self) -> Pos
fn last_key(self) -> Pos
fn get(self, pos: Pos) -> Option<Self::Item>
fn get_native(self, native: Pos) -> Option<Self::Item>
fn offset(self, pos: Pos) -> NumResult<GridOffset<Pos, DIMS>>
fn cursor(self, pos: Pos) -> Option<GridCursor<Pos, DIMS>>
fn map<Storage, MapFn, Output>( self, map_fn: MapFn ) -> GridBuf<Storage, Pos, DIMS>where MapFn: FnMut(GridCursor<Pos, DIMS>) -> Output, Storage: Clone + GridStorage + FromIterator<Output>,
fn try_map<Storage, MapFn, Output, Error>( self, map_fn: MapFn ) -> Result<GridBuf<Storage, Pos, DIMS>, Error>where MapFn: FnMut(GridCursor<Pos, DIMS>) -> Result<Output, Error>, Storage: Clone + GridStorage + FromIterator<Output>,
source§impl<'grd, Storage, Pos, const DIMS: usize> GridViewIter<Pos, DIMS> for &'grd GridBuf<Storage, Pos, DIMS>where
Pos: GridPos<DIMS>,
Storage: GridStorage,
&'grd Storage: GridStorageIntoIter<Item = Self::Item>,
impl<'grd, Storage, Pos, const DIMS: usize> GridViewIter<Pos, DIMS> for &'grd GridBuf<Storage, Pos, DIMS>where Pos: GridPos<DIMS>, Storage: GridStorage, &'grd Storage: GridStorageIntoIter<Item = Self::Item>,
type Values = <&'grd Storage as GridStorageIntoIter>::Iter
fn values(self) -> Self::Values
fn iter(self) -> GridIter<Self::Values, Pos, DIMS>where Self: Copy + Sized,
fn to_buf<Storage>(self) -> GridBuf<Storage, Pos, DIMS>where Storage: Clone + GridStorage + FromIterator<Self::Item>,
source§impl<Storage: Hash, Pos, const DIMS: usize> Hash for GridBuf<Storage, Pos, DIMS>where
Pos: GridPos<DIMS> + Hash,
impl<Storage: Hash, Pos, const DIMS: usize> Hash for GridBuf<Storage, Pos, DIMS>where Pos: GridPos<DIMS> + Hash,
source§impl<Storage: Ord, Pos, const DIMS: usize> Ord for GridBuf<Storage, Pos, DIMS>where
Pos: GridPos<DIMS> + Ord,
impl<Storage: Ord, Pos, const DIMS: usize> Ord for GridBuf<Storage, Pos, DIMS>where Pos: GridPos<DIMS> + Ord,
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere Self: Sized,
Compares and returns the maximum of two values. Read more
source§impl<Storage: PartialEq, Pos, const DIMS: usize> PartialEq<GridBuf<Storage, Pos, DIMS>> for GridBuf<Storage, Pos, DIMS>where
Pos: GridPos<DIMS> + PartialEq,
impl<Storage: PartialEq, Pos, const DIMS: usize> PartialEq<GridBuf<Storage, Pos, DIMS>> for GridBuf<Storage, Pos, DIMS>where Pos: GridPos<DIMS> + PartialEq,
source§impl<Storage: PartialOrd, Pos, const DIMS: usize> PartialOrd<GridBuf<Storage, Pos, DIMS>> for GridBuf<Storage, Pos, DIMS>where
Pos: GridPos<DIMS> + PartialOrd,
impl<Storage: PartialOrd, Pos, const DIMS: usize> PartialOrd<GridBuf<Storage, Pos, DIMS>> for GridBuf<Storage, Pos, DIMS>where Pos: GridPos<DIMS> + PartialOrd,
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moreimpl<Storage: Eq, Pos, const DIMS: usize> Eq for GridBuf<Storage, Pos, DIMS>where Pos: GridPos<DIMS> + Eq,
impl<Storage, Pos, const DIMS: usize> StructuralEq for GridBuf<Storage, Pos, DIMS>where Pos: GridPos<DIMS>,
impl<Storage, Pos, const DIMS: usize> StructuralPartialEq for GridBuf<Storage, Pos, DIMS>where Pos: GridPos<DIMS>,
Auto Trait Implementations§
impl<Storage, Pos, const DIMS: usize> RefUnwindSafe for GridBuf<Storage, Pos, DIMS>where Pos: RefUnwindSafe, Storage: RefUnwindSafe,
impl<Storage, Pos, const DIMS: usize> Send for GridBuf<Storage, Pos, DIMS>where Pos: Send, Storage: Send,
impl<Storage, Pos, const DIMS: usize> Sync for GridBuf<Storage, Pos, DIMS>where Pos: Sync, Storage: Sync,
impl<Storage, Pos, const DIMS: usize> Unpin for GridBuf<Storage, Pos, DIMS>where Pos: Unpin, Storage: Unpin,
impl<Storage, Pos, const DIMS: usize> UnwindSafe for GridBuf<Storage, Pos, DIMS>where Pos: UnwindSafe, Storage: UnwindSafe,
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