pub trait GetIndex<'a, S>where
S: ?Sized,{
type Output;
// Required method
fn get(self, set: &S) -> Option<Self::Output>;
// Provided method
unsafe fn at_unchecked(self, set: &S) -> Self::Output
where Self: Sized { ... }
}Expand description
A helper trait analogous to SliceIndex from the standard library.
Required Associated Types§
Required Methods§
Provided Methods§
Implementations on Foreign Types§
Source§impl<'a, O> GetIndex<'a, ClumpedOffsets<O>> for &usizewhere
ClumpedOffsets<O>: GetOffset,
impl<'a, O> GetIndex<'a, ClumpedOffsets<O>> for &usizewhere
ClumpedOffsets<O>: GetOffset,
Source§impl<'a, O> GetIndex<'a, ClumpedOffsets<O>> for usizewhere
ClumpedOffsets<O>: GetOffset,
impl<'a, O> GetIndex<'a, ClumpedOffsets<O>> for usizewhere
ClumpedOffsets<O>: GetOffset,
Source§impl<'a, S, O> GetIndex<'a, Chunked<S, O>> for &usize
impl<'a, S, O> GetIndex<'a, Chunked<S, O>> for &usize
Source§fn get(self, chunked: &Chunked<S, O>) -> Option<Self::Output>
fn get(self, chunked: &Chunked<S, O>) -> Option<Self::Output>
Get an element of the given Chunked collection.
§Example
use flatk::*;
let v = vec![0, 1, 4, 6];
let data = (1..=6).collect::<Vec<_>>();
let s = Chunked::from_offsets(v.as_slice(), data.view());
assert_eq!(Some(&[1][..]), s.get(&0));
assert_eq!(Some(&[2,3,4][..]), s.get(&1));
assert_eq!(Some(&[5,6][..]), s.get(&2));type Output = <S as Get<'a, Range<usize>>>::Output
Source§impl<'a, S, O> GetIndex<'a, Chunked<S, O>> for usize
impl<'a, S, O> GetIndex<'a, Chunked<S, O>> for usize
Source§fn get(self, chunked: &Chunked<S, O>) -> Option<Self::Output>
fn get(self, chunked: &Chunked<S, O>) -> Option<Self::Output>
Get an element of the given Chunked collection.
§Example
use flatk::*;
let v = vec![0, 1, 4, 6];
let data = (1..=6).collect::<Vec<_>>();
let s = Chunked::from_offsets(v.as_slice(), data.view());
assert_eq!(Some(&[1][..]), s.get(0));
assert_eq!(Some(&[2,3,4][..]), s.get(1));
assert_eq!(Some(&[5,6][..]), s.get(2));type Output = <S as Get<'a, Range<usize>>>::Output
Source§impl<'a, S, O> GetIndex<'a, Chunked<S, O>> for Range<usize>
impl<'a, S, O> GetIndex<'a, Chunked<S, O>> for Range<usize>
Source§fn get(self, chunked: &Chunked<S, O>) -> Option<Self::Output>
fn get(self, chunked: &Chunked<S, O>) -> Option<Self::Output>
Get a [begin..end) subview of the given Chunked collection.
§Example
use flatk::*;
let data = (1..=6).collect::<Vec<_>>();
let offsets = vec![1, 2, 5, 7]; // Offsets don't have to start at 0
let s = Chunked::from_offsets(offsets.as_slice(), data.view());
let v = s.get(1..3).unwrap();
assert_eq!(Some(&[2,3,4][..]), v.get(0));
assert_eq!(Some(&[5,6][..]), v.get(1));