Skip to main content

ExtendDatums

Trait ExtendDatums 

Source
pub trait ExtendDatums {
    // Required method
    fn extend_datums<'a>(
        &'a self,
        arena: &'a RowArena,
        target: &mut Vec<Datum<'a>>,
        max: Option<usize>,
    );
}
Expand description

A helper trait for types that can append their datums to a Vec<Datum>.

Required Methods§

Source

fn extend_datums<'a>( &'a self, arena: &'a RowArena, target: &mut Vec<Datum<'a>>, max: Option<usize>, )

Append datums to target — all of them (max == None) or at most max (Some) — branching on representation ONCE rather than once per datum.

arena provides storage for data that the appended datums borrow from but that does not already live in self. Representations backed directly by packed bytes (Row, row-spine’s DatumSeq) ignore it, while compressed representations can decode into it so the resulting Datum<'a>s borrow from the arena rather than from self. Implementors should push directly into target in a tight loop, branching on their representation once rather than once per datum.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<T: ExtendDatums + ?Sized> ExtendDatums for &T

Source§

fn extend_datums<'a>( &'a self, arena: &'a RowArena, target: &mut Vec<Datum<'a>>, max: Option<usize>, )

Implementors§