[][src]Struct grid_trait::grid3::backends::kolmorw::KolmoRwGrid3

pub struct KolmoRwGrid3<I, R, T, Fr, Fw> where
    Fr: Fn(I, &R) -> &T,
    Fw: FnMut(I, &mut R) -> &mut T,
    I: From<Vector3<i32>>, 
{ /* fields omitted */ }

Kolmogorov by-reference read/write encoding of Grid3.

This is the most powerful kolmogorov borrowing type, because it contains separate functions for the exclusive and shared access pathways, and holds a single datum which they both reference.

This is a Grid3 implementation which only stores a function from coordinate to value. It is subsequently unbounded.

Methods

impl<I, R, T, Fr, Fw> KolmoRwGrid3<I, R, T, Fr, Fw> where
    Fr: Fn(I, &R) -> &T,
    Fw: FnMut(I, &mut R) -> &mut T,
    I: From<Vector3<i32>>, 
[src]

pub fn new(referent: R, reader: Fr, writer: Fw) -> Self[src]

Trait Implementations

impl<I, R, T, Fr, Fw> Grid3 for KolmoRwGrid3<I, R, T, Fr, Fw> where
    Fr: Fn(I, &R) -> &T,
    Fw: FnMut(I, &mut R) -> &mut T,
    I: From<Vector3<i32>>, 
[src]

type Item = T

type XBound = RangeFull

type YBound = RangeFull

type ZBound = RangeFull

impl<I, R, T, Fr, Fw> Grid3Get for KolmoRwGrid3<I, R, T, Fr, Fw> where
    T: Clone,
    Fr: Fn(I, &R) -> &T,
    Fw: FnMut(I, &mut R) -> &mut T,
    I: From<Vector3<i32>>, 
[src]

impl<I, R, T, Fr, Fw> Grid3Mut for KolmoRwGrid3<I, R, T, Fr, Fw> where
    Fr: Fn(I, &R) -> &T,
    Fw: FnMut(I, &mut R) -> &mut T,
    I: From<Vector3<i32>>, 
[src]

impl<I, R, T, Fr, Fw> Grid3Ref for KolmoRwGrid3<I, R, T, Fr, Fw> where
    Fr: Fn(I, &R) -> &T,
    Fw: FnMut(I, &mut R) -> &mut T,
    I: From<Vector3<i32>>, 
[src]

impl<I, R, T, Fr, Fw> Grid3Set for KolmoRwGrid3<I, R, T, Fr, Fw> where
    Fr: Fn(I, &R) -> &T,
    Fw: FnMut(I, &mut R) -> &mut T,
    I: From<Vector3<i32>>, 
[src]

Auto Trait Implementations

impl<I, R, T, Fr, Fw> RefUnwindSafe for KolmoRwGrid3<I, R, T, Fr, Fw> where
    Fr: RefUnwindSafe,
    Fw: RefUnwindSafe,
    R: RefUnwindSafe

impl<I, R, T, Fr, Fw> Send for KolmoRwGrid3<I, R, T, Fr, Fw> where
    Fr: Send,
    Fw: Send,
    R: Send

impl<I, R, T, Fr, Fw> Sync for KolmoRwGrid3<I, R, T, Fr, Fw> where
    Fr: Sync,
    Fw: Sync,
    R: Sync

impl<I, R, T, Fr, Fw> Unpin for KolmoRwGrid3<I, R, T, Fr, Fw> where
    Fr: Unpin,
    Fw: Unpin,
    R: Unpin

impl<I, R, T, Fr, Fw> UnwindSafe for KolmoRwGrid3<I, R, T, Fr, Fw> where
    Fr: UnwindSafe,
    Fw: UnwindSafe,
    R: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> Grid3 for T where
    T: Deref,
    <T as Deref>::Target: Grid3
[src]

type Item = <<T as Deref>::Target as Grid3>::Item

type XBound = <<T as Deref>::Target as Grid3>::XBound

type YBound = <<T as Deref>::Target as Grid3>::YBound

type ZBound = <<T as Deref>::Target as Grid3>::ZBound

impl<T> Grid3Get for T where
    T: Deref,
    <T as Deref>::Target: Grid3Get
[src]

impl<T> Grid3Mut for T where
    T: Deref + DerefMut,
    <T as Deref>::Target: Grid3Mut
[src]

impl<T> Grid3Ref for T where
    T: Deref,
    <T as Deref>::Target: Grid3Ref
[src]

impl<T> Grid3Set for T where
    T: Deref + DerefMut,
    <T as Deref>::Target: Grid3Set
[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.