Skip to main content

SamplingState

Struct SamplingState 

Source
pub struct SamplingState { /* private fields */ }
Expand description

The cross-row state that stateful strategies need.

One instance lives for a whole scan. Recreating it per row — which is what a stateless helper amounts to — makes every stateful strategy behave as if each row were the first, which is how stratified sampling came to return nothing and reservoir sampling came to return everything.

Implementations§

Source§

impl SamplingState

Source

pub fn new() -> Self

Source

pub fn progressive_taken(&self) -> usize

Rows a Progressive stage has taken so far.

Source

pub fn record_progressive(&mut self)

Record that a Progressive stage took a row.

Source

pub fn take_from_stratum( &mut self, row: RowView<'_>, key_columns: &[String], samples_per_stratum: usize, ) -> bool

Take row for its stratum if that stratum still has room.

The stratum key is the joined values of key_columns. A row missing any key column belongs to no stratum and is not sampled — silently folding it into a partial key would merge unrelated rows into one stratum.

Source

pub fn strata_seen(&self) -> usize

Number of distinct strata observed so far.

Trait Implementations§

Source§

impl Debug for SamplingState

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for SamplingState

Source§

fn default() -> SamplingState

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V