Skip to main content

Mapper

Struct Mapper 

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

Maps row changes of bound relations to input-cell edits.

Implementations§

Source§

impl Mapper

Source

pub fn new(model: &Model, bindings: HashMap<u32, Vec<Binding>>) -> Self

A mapper for model (its items name the dimension values) with bindings per relation oid. Aggregated bindings start with no rows: Mapper::seed them.

Source

pub fn aggregated(&self) -> Vec<(u32, Binding)>

The aggregated bindings, with their relation oids: each needs a Mapper::seed.

Source

pub fn binds(&self, oid: u32) -> bool

Whether relation oid feeds the model.

Source

pub fn unknown( &self, rels: &HashMap<u32, Relation>, txns: &[Txn], ) -> Vec<(CategoryId, String)>

The dimension values in txns’ rows of bound relations (old rows and new, as the loader’s ::text reads them) that have no item yet, sorted. As the loader does, a row’s non-NULL values count even when another of its dimensions is NULL.

Source

pub fn add_item(&mut self, cat: CategoryId, name: &str, id: ItemId)

Add item id, named name, of category cat (minted by the caller).

Source

pub fn seed( &mut self, model: &mut Model, measure: MeasureId, oid: u32, rows: &[FoldRow], snap: Snap, ) -> Result<(), Rebuild>

Load aggregated measure measure’s fold state from the rows of its seed_sql (snap the snapshot they were read with), its value column being of Postgres type oid, and set model‘s cells for it to the folds’. A text min or max keeps no state (its changes rebuild) and leaves the model’s cells as they are.

Source

pub fn map( &mut self, model: &mut Model, rels: &HashMap<u32, Relation>, txns: &[Txn], replay_until: u64, ) -> Result<Vec<Edit>, Rebuild>

Apply the changes of txns (tuples of the relations in rels) to model’s input cells, as the loader would see the rows, and return one edit per cell whose value the batch changed, with its final value (a cell set back to its old value makes none). Changes to relations without a binding are ignored. Transactions that ended at or before replay_until may already be in model (see the module docs). On Err the model’s inputs and this mapper’s folds are half-updated: discard both.

Trait Implementations§

Source§

impl Clone for Mapper

Source§

fn clone(&self) -> Mapper

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Mapper

Source§

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

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

impl Default for Mapper

Source§

fn default() -> Mapper

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
§

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

§

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

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> Data for T
where T: Clone + 'static,

§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync> ⓘ

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
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.

§

impl<T> ProgressEventTimestamp for T
where T: Data + Debug + Any,

§

fn as_any(&self) -> &(dyn Any + 'static)

Upcasts this ProgressEventTimestamp to Any. Read more
§

fn type_name(&self) -> &'static str

Returns the name of the concrete type of this object. Read more
§

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

§

impl<'a, S, T> Semigroup<&'a S> for T
where T: Semigroup<S>,

§

fn plus_equals(&mut self, rhs: &&'a S)

The method of std::ops::AddAssign, for types that do not implement AddAssign.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.