[][src]Trait flatk::Storage

pub trait Storage {
    type Storage: ?Sized;
    fn storage(&self) -> &Self::Storage;
}

Get an immutable reference to the underlying storage type.

Associated Types

type Storage: ?Sized

Loading content...

Required methods

fn storage(&self) -> &Self::Storage

Loading content...

Implementations on Foreign Types

impl<T> Storage for Range<T>[src]

type Storage = Range<T>

fn storage(&self) -> &Self::Storage[src]

A range is a type of storage, simply return an immutable reference to self.

impl<'a, T> Storage for &'a [T][src]

type Storage = [T]

impl<'a, T> Storage for &'a mut [T][src]

type Storage = [T]

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

type Storage = [T]

impl<S: Storage<Storage = S>, T: Storage<Storage = T>> Storage for (S, T)[src]

We can only provide a reference to the underlying storage of a tuple if the tuple is made up of storage type collections itself. In this case the storage is the tuple itself.

type Storage = (S, T)

impl<T> Storage for Vec<T>[src]

type Storage = Vec<T>

fn storage(&self) -> &Self::Storage[src]

Vec is a type of storage, simply return an immutable reference to self.

Loading content...

Implementors

impl<S: Storage, I> Storage for Select<S, I>[src]

type Storage = S::Storage

fn storage(&self) -> &Self::Storage[src]

Return an immutable reference to the underlying storage type.

Example

use flatk::*;
let v = vec![1,2,3,4,5,6,7,8,9,10,11,12];
let s0 = Chunked3::from_flat(v.clone());
let s1 = Select::new(vec![1, 1, 0, 2], s0.clone());
assert_eq!(s1.storage(), &v);

impl<S: Storage, I> Storage for Subset<S, I>[src]

type Storage = S::Storage

fn storage(&self) -> &Self::Storage[src]

Return an immutable reference to the underlying storage type.

Example

use flatk::*;
let v = vec![1,2,3,4,5,6,7,8,9,10,11,12];
let s0 = Chunked3::from_flat(v.clone());
let s1 = Subset::from_indices(vec![0, 2, 3], s0.clone());
assert_eq!(s1.storage(), &v);

impl<S: Storage, N> Storage for UniChunked<S, N>[src]

type Storage = S::Storage

fn storage(&self) -> &Self::Storage[src]

Return an immutable reference to the underlying storage type.

Example

use flatk::*;
let v = vec![1,2,3,4,5,6,7,8,9,10,11,12];
let s0 = Chunked2::from_flat(v.clone());
let s1 = ChunkedN::from_flat_with_stride(s0.clone(), 3);
assert_eq!(s1.storage(), &v);
assert_eq!(s0.storage(), &v);

impl<S: Storage, O> Storage for Chunked<S, O>[src]

type Storage = S::Storage

fn storage(&self) -> &Self::Storage[src]

Return an immutable reference to the underlying storage type.

Example

use flatk::*;
let v = vec![1,2,3,4,5,6,7,8,9,10,11];
let s0 = Chunked::from_offsets(vec![0,3,4,6,9,11], v.clone());
let s1 = Chunked::from_offsets(vec![0,1,4,5], s0.clone());
assert_eq!(s1.storage(), &v);
assert_eq!(s0.storage(), &v);

impl<S: Storage, T, I> Storage for Sparse<S, T, I>[src]

type Storage = S::Storage

fn storage(&self) -> &Self::Storage[src]

Return an immutable reference to the underlying storage type of source data.

Example

use flatk::*;
let v = vec![1,2,3,4,5,6,7,8,9,10,11,12];
let s0 = Chunked3::from_flat(v.clone());
let s1 = Sparse::from_dim(vec![0, 2, 2, 0], 4, s0.clone());
assert_eq!(s1.storage(), &v);
Loading content...