Trait aoc_grid::GridView

source ·
pub trait GridView<Pos, const DIMS: usize>: Copy + Sizedwhere
    Pos: GridPos<DIMS>,{
    type Item;
    type Cursors: Iterator<Item = GridCursor<Pos, DIMS>>;

Show 18 methods // Required methods fn start(self) -> Pos; fn end(self) -> Pos; fn size(self) -> Pos; fn get_trusted(self, native: Pos, idx: usize) -> Self::Item; fn cursors(self) -> Self::Cursors; // Provided methods 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 extend_map<Storage, MapFn, Output>( self, amts: [(Pos::Coord, Pos::Coord); DIMS], map_fn: MapFn ) -> NumResult<GridBuf<Storage, Pos, DIMS>> where MapFn: FnMut(GridCursor<Pos, DIMS>) -> Output, Storage: Clone + GridStorage + FromIterator<Output>, Self::Item: Default { ... } 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> { ... } fn transform<Storage>( self, start: Pos, axes: [impl Into<Pos>; DIMS] ) -> NumResult<GridBuf<Storage, Pos, DIMS>> where Storage: Clone + GridStorage + FromIterator<Self::Item>, Pos::Coord: IntSigned { ... }
}

Required Associated Types§

source

type Item

source

type Cursors: Iterator<Item = GridCursor<Pos, DIMS>>

Required Methods§

source

fn start(self) -> Pos

source

fn end(self) -> Pos

source

fn size(self) -> Pos

source

fn get_trusted(self, native: Pos, idx: usize) -> Self::Item

source

fn cursors(self) -> Self::Cursors

Provided Methods§

source

fn len(self) -> usize

source

fn is_empty(self) -> bool

source

fn keys(self) -> GridKeysIter<Pos, DIMS>

source

fn first_key(self) -> Pos

source

fn last_key(self) -> Pos

source

fn get(self, pos: Pos) -> Option<Self::Item>

source

fn get_native(self, native: Pos) -> Option<Self::Item>

source

fn offset(self, pos: Pos) -> NumResult<GridOffset<Pos, DIMS>>

source

fn cursor(self, pos: Pos) -> Option<GridCursor<Pos, DIMS>>

source

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>,

source

fn extend_map<Storage, MapFn, Output>( self, amts: [(Pos::Coord, Pos::Coord); DIMS], map_fn: MapFn ) -> NumResult<GridBuf<Storage, Pos, DIMS>>where MapFn: FnMut(GridCursor<Pos, DIMS>) -> Output, Storage: Clone + GridStorage + FromIterator<Output>, Self::Item: Default,

source

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

fn transform<Storage>( self, start: Pos, axes: [impl Into<Pos>; DIMS] ) -> NumResult<GridBuf<Storage, Pos, DIMS>>where Storage: Clone + GridStorage + FromIterator<Self::Item>, Pos::Coord: IntSigned,

Implementors§

source§

impl<'grd, Inner, Pos, const DIMS: usize> GridView<Pos, DIMS> for &'grd GridExtend<Inner, Pos, DIMS>where Inner: GridView<Pos, DIMS>, Inner::Item: Default, Pos: GridPos<DIMS>,

§

type Item = <Inner as GridView<Pos, DIMS>>::Item

§

type Cursors = GridExtendCursors<Pos, DIMS>

source§

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>