Trait aoc_grid::GridStorage

source ·
pub trait GridStorage {
    type Item;

    // Required methods
    fn storage_get(&self, idx: usize) -> Option<Self::Item>;
    fn storage_set(&mut self, idx: usize, item: Self::Item);
    fn storage_len(&self) -> usize;
}
Expand description

Trait for backing stores for a GridBuf

This provides a simple abstraction over a fixed size array of items. It is implemented for Vec and BitVec.

Required Associated Types§

Required Methods§

source

fn storage_get(&self, idx: usize) -> Option<Self::Item>

source

fn storage_set(&mut self, idx: usize, item: Self::Item)

source

fn storage_len(&self) -> usize

Implementations on Foreign Types§

source§

impl<Item, Encoding> GridStorage for BitVec<Item, Encoding>where Encoding: BitVecEncoding<Item>, Item: Clone,

§

type Item = Item

source§

fn storage_get(&self, idx: usize) -> Option<Item>

source§

fn storage_set(&mut self, idx: usize, item: Self::Item)

source§

fn storage_len(&self) -> usize

source§

impl<Item> GridStorage for Vec<Item>where Item: Clone,

§

type Item = Item

source§

fn storage_get(&self, idx: usize) -> Option<Item>

source§

fn storage_set(&mut self, idx: usize, item: Self::Item)

source§

fn storage_len(&self) -> usize

source§

impl<Item, const LEN: usize> GridStorage for [Item; LEN]where Item: Clone,

§

type Item = Item

source§

fn storage_get(&self, idx: usize) -> Option<Item>

source§

fn storage_set(&mut self, idx: usize, item: Self::Item)

source§

fn storage_len(&self) -> usize

Implementors§