Skip to main content

SplitStore

Trait SplitStore 

Source
pub trait SplitStore: Send + Sync {
    // Required methods
    fn label_for(&self, id: &RecordId) -> Option<SplitLabel>;
    fn upsert(
        &self,
        id: RecordId,
        label: SplitLabel,
    ) -> Result<(), SamplerError>;
    fn ratios(&self) -> SplitRatios;
    fn ensure(&self, id: RecordId) -> Result<SplitLabel, SamplerError>;
}
Expand description

Split assignment backend.

Implementations map RecordId values to split labels deterministically.

Required Methods§

Source

fn label_for(&self, id: &RecordId) -> Option<SplitLabel>

Return split label for id if known/derivable.

Source

fn upsert(&self, id: RecordId, label: SplitLabel) -> Result<(), SamplerError>

Persist an explicit split assignment for id.

Source

fn ratios(&self) -> SplitRatios

Return configured split ratios.

Source

fn ensure(&self, id: RecordId) -> Result<SplitLabel, SamplerError>

Return the split label for id, creating/deriving one when needed.

Implementors§