Skip to main content

FromBytes

Trait FromBytes 

Source
pub trait FromBytes<'a> {
    const SLICE_COUNT: usize;

    // Required method
    fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self;

    // Provided methods
    fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self
       where Self: Sized { ... }
    fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String> { ... }
    fn validate(slices: &[(&[u64], u8)]) -> Result<(), String>
       where Self: Sized { ... }
}
Expand description

A type that can be reconstituted from byte slices with lifetime 'a.

Implementors of this trait almost certainly reference the lifetime 'a themselves, unless they actively deserialize the bytes (vs sit on the slices, as if zero-copy).

§Overriding methods

The only required method is from_bytes. However, the default implementation of from_store falls back through from_bytes, which contains panicking operations that prevent LLVM from eliminating unused fields. Implementors should override from_store and element_sizes to ensure optimal codegen. Missing overrides are functionally correct but silently degrade performance. The #[derive(Columnar)] macro generates all overrides automatically.

Required Associated Constants§

Source

const SLICE_COUNT: usize

The number of byte slices this type consumes when reconstructed.

Required Methods§

Source

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Reconstructs self from a sequence of correctly aligned and sized bytes slices.

The implementation is expected to consume the right number of items from the iterator, which may go on to be used by other implementations of FromBytes.

The implementation should aim for only doing trivial work, as it backs calls like borrow for serialized containers.

Implementations should almost always be marked as #[inline(always)] to ensure that they are inlined. A single non-inlined function on a tree of from_bytes calls can cause the performance to drop significantly.

Provided Methods§

Source

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self
where Self: Sized,

Reconstructs self from a DecodedStore, using direct random access at a given offset.

Each field indexes directly into the store at its compile-time-known offset, with no iterator state or sequential dependency. This enables LLVM to fully eliminate unused fields.

Source

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Reports the element sizes (in bytes) for each slice this type consumes.

Implementors should override this to report their actual element sizes. For example, &[u32] pushes 4, while a tuple delegates to each field. The default returns Err, so that validate rejects data for types that have not implemented this method.

Source

fn validate(slices: &[(&[u64], u8)]) -> Result<(), String>
where Self: Sized,

Validates that the given slices are compatible with this type.

The input provides (&[u64], u8) pairs: each is a word slice and trailing byte count. This type consumes Self::SLICE_COUNT entries and checks that each slice’s byte length is a multiple of its element size.

Built from Self::element_sizes; generally should not need to be overridden.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'a> FromBytes<'a> for &'a [f32]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a> FromBytes<'a> for &'a [f64]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a> FromBytes<'a> for &'a [i8]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a> FromBytes<'a> for &'a [i16]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a> FromBytes<'a> for &'a [i32]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a> FromBytes<'a> for &'a [i64]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a> FromBytes<'a> for &'a [u8]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a> FromBytes<'a> for &'a [u16]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a> FromBytes<'a> for &'a [u32]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a> FromBytes<'a> for &'a [u64]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a> FromBytes<'a> for &'a [Wrapping<i8>]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a> FromBytes<'a> for &'a [Wrapping<i16>]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a> FromBytes<'a> for &'a [Wrapping<i32>]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a> FromBytes<'a> for &'a [Wrapping<i64>]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a> FromBytes<'a> for &'a [Wrapping<u8>]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a> FromBytes<'a> for &'a [Wrapping<u16>]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a> FromBytes<'a> for &'a [Wrapping<u32>]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a> FromBytes<'a> for &'a [Wrapping<u64>]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, A: FromBytes<'a>> FromBytes<'a> for (A,)

Source§

const SLICE_COUNT: usize

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, A: FromBytes<'a>, B: FromBytes<'a>> FromBytes<'a> for (A, B)

Source§

const SLICE_COUNT: usize

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, A: FromBytes<'a>, B: FromBytes<'a>, C: FromBytes<'a>> FromBytes<'a> for (A, B, C)

Source§

const SLICE_COUNT: usize

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, A: FromBytes<'a>, B: FromBytes<'a>, C: FromBytes<'a>, D: FromBytes<'a>> FromBytes<'a> for (A, B, C, D)

Source§

const SLICE_COUNT: usize

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, A: FromBytes<'a>, B: FromBytes<'a>, C: FromBytes<'a>, D: FromBytes<'a>, E: FromBytes<'a>> FromBytes<'a> for (A, B, C, D, E)

Source§

const SLICE_COUNT: usize

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, A: FromBytes<'a>, B: FromBytes<'a>, C: FromBytes<'a>, D: FromBytes<'a>, E: FromBytes<'a>, F: FromBytes<'a>> FromBytes<'a> for (A, B, C, D, E, F)

Source§

const SLICE_COUNT: usize

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, A: FromBytes<'a>, B: FromBytes<'a>, C: FromBytes<'a>, D: FromBytes<'a>, E: FromBytes<'a>, F: FromBytes<'a>, G: FromBytes<'a>> FromBytes<'a> for (A, B, C, D, E, F, G)

Source§

const SLICE_COUNT: usize

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, A: FromBytes<'a>, B: FromBytes<'a>, C: FromBytes<'a>, D: FromBytes<'a>, E: FromBytes<'a>, F: FromBytes<'a>, G: FromBytes<'a>, H: FromBytes<'a>> FromBytes<'a> for (A, B, C, D, E, F, G, H)

Source§

const SLICE_COUNT: usize

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, A: FromBytes<'a>, B: FromBytes<'a>, C: FromBytes<'a>, D: FromBytes<'a>, E: FromBytes<'a>, F: FromBytes<'a>, G: FromBytes<'a>, H: FromBytes<'a>, I: FromBytes<'a>> FromBytes<'a> for (A, B, C, D, E, F, G, H, I)

Source§

const SLICE_COUNT: usize

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, A: FromBytes<'a>, B: FromBytes<'a>, C: FromBytes<'a>, D: FromBytes<'a>, E: FromBytes<'a>, F: FromBytes<'a>, G: FromBytes<'a>, H: FromBytes<'a>, I: FromBytes<'a>, J: FromBytes<'a>> FromBytes<'a> for (A, B, C, D, E, F, G, H, I, J)

Source§

const SLICE_COUNT: usize

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, T: FromBytes<'a>> FromBytes<'a> for Rc<T>

Source§

const SLICE_COUNT: usize = T::SLICE_COUNT

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

impl<'a, T: FromBytes<'a>> FromBytes<'a> for Arc<T>

Source§

const SLICE_COUNT: usize = T::SLICE_COUNT

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

impl<'a, const N: usize> FromBytes<'a> for &'a [[f32; N]]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, const N: usize> FromBytes<'a> for &'a [[f64; N]]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, const N: usize> FromBytes<'a> for &'a [[i8; N]]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, const N: usize> FromBytes<'a> for &'a [[i16; N]]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, const N: usize> FromBytes<'a> for &'a [[i32; N]]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, const N: usize> FromBytes<'a> for &'a [[i64; N]]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, const N: usize> FromBytes<'a> for &'a [[u8; N]]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, const N: usize> FromBytes<'a> for &'a [[u16; N]]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, const N: usize> FromBytes<'a> for &'a [[u32; N]]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, const N: usize> FromBytes<'a> for &'a [[u64; N]]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, const N: usize> FromBytes<'a> for &'a [[Wrapping<i8>; N]]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, const N: usize> FromBytes<'a> for &'a [[Wrapping<i16>; N]]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, const N: usize> FromBytes<'a> for &'a [[Wrapping<i32>; N]]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, const N: usize> FromBytes<'a> for &'a [[Wrapping<i64>; N]]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, const N: usize> FromBytes<'a> for &'a [[Wrapping<u8>; N]]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, const N: usize> FromBytes<'a> for &'a [[Wrapping<u16>; N]]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, const N: usize> FromBytes<'a> for &'a [[Wrapping<u32>; N]]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Source§

impl<'a, const N: usize> FromBytes<'a> for &'a [[Wrapping<u64>; N]]

Source§

const SLICE_COUNT: usize = 1

Source§

fn from_bytes(bytes: &mut impl Iterator<Item = &'a [u8]>) -> Self

Source§

fn from_store(store: &DecodedStore<'a>, offset: &mut usize) -> Self

Source§

fn element_sizes(sizes: &mut Vec<usize>) -> Result<(), String>

Implementors§

Source§

impl<'a> FromBytes<'a> for Empties<&'a u64>

Source§

impl<'a> FromBytes<'a> for Discriminant<&'a [u8], &'a [u64]>

Source§

impl<'a, BC: FromBytes<'a>> FromBytes<'a> for Strides<BC, &'a [u64]>

Source§

impl<'a, BC: FromBytes<'a>, VC: FromBytes<'a>> FromBytes<'a> for Strings<BC, VC>

Source§

impl<'a, C: FromBytes<'a>> FromBytes<'a> for Boxed<C>

Source§

const SLICE_COUNT: usize = C::SLICE_COUNT

Source§

impl<'a, CC: FromBytes<'a>, VC: FromBytes<'a>> FromBytes<'a> for RankSelect<CC, VC, &'a [u64]>

Source§

impl<'a, CV: FromBytes<'a>> FromBytes<'a> for Chars<CV>

Source§

const SLICE_COUNT: usize = CV::SLICE_COUNT

Source§

impl<'a, CV: FromBytes<'a>> FromBytes<'a> for I128s<CV>

Source§

const SLICE_COUNT: usize = CV::SLICE_COUNT

Source§

impl<'a, CV: FromBytes<'a>> FromBytes<'a> for Isizes<CV>

Source§

const SLICE_COUNT: usize = CV::SLICE_COUNT

Source§

impl<'a, CV: FromBytes<'a>> FromBytes<'a> for U128s<CV>

Source§

const SLICE_COUNT: usize = CV::SLICE_COUNT

Source§

impl<'a, CV: FromBytes<'a>> FromBytes<'a> for Usizes<CV>

Source§

const SLICE_COUNT: usize = CV::SLICE_COUNT

Source§

impl<'a, SC: FromBytes<'a>, NC: FromBytes<'a>> FromBytes<'a> for Durations<SC, NC>

Source§

impl<'a, SC: FromBytes<'a>, TC: FromBytes<'a>, CC: FromBytes<'a>, VC: FromBytes<'a>> FromBytes<'a> for Results<SC, TC, CC, VC, &'a [u64]>

Source§

impl<'a, TC: FromBytes<'a>, BC: FromBytes<'a>> FromBytes<'a> for Trees<TC, BC>

Source§

impl<'a, TC: FromBytes<'a>, BC: FromBytes<'a>> FromBytes<'a> for Vecs<TC, BC>

Source§

impl<'a, TC: FromBytes<'a>, CC: FromBytes<'a>, VC: FromBytes<'a>> FromBytes<'a> for Repeats<TC, CC, VC, &'a [u64]>

Source§

const SLICE_COUNT: usize = Options<TC, CC, VC, &'a [u64]>::SLICE_COUNT

Source§

impl<'a, TC: FromBytes<'a>, CC: FromBytes<'a>, VC: FromBytes<'a>> FromBytes<'a> for Options<TC, CC, VC, &'a [u64]>

Source§

impl<'a, TC: FromBytes<'a>, VC: FromBytes<'a>, CC: FromBytes<'a>, RC: FromBytes<'a>> FromBytes<'a> for Lookbacks<TC, VC, CC, RC, &'a [u64]>

Source§

const SLICE_COUNT: usize = Results<TC, VC, CC, RC, &'a [u64]>::SLICE_COUNT

Source§

impl<'a, VC: FromBytes<'a>> FromBytes<'a> for Bools<VC, &'a [u64]>

Source§

impl<'a, const K: u64> FromBytes<'a> for Fixeds<K, &'a u64>