QueryIcebox

Trait QueryIcebox 

Source
pub trait QueryIcebox {
    // Required methods
    fn past_dependents(
        &self,
        cursors: &[Cursor],
    ) -> Result<Vec<OrphanedEnvelope>, ConnectionError>;
    fn future_dependents(
        &self,
        cursors: &[Cursor],
    ) -> Result<Vec<OrphanedEnvelope>, ConnectionError>;
    fn ice(
        &self,
        orphans: Vec<OrphanedEnvelope>,
    ) -> Result<usize, ConnectionError>;
    fn prune_icebox(&self) -> Result<usize, ConnectionError>;
}

Required Methods§

Source

fn past_dependents( &self, cursors: &[Cursor], ) -> Result<Vec<OrphanedEnvelope>, ConnectionError>

Returns the envelopes (if they exist) plus all their dependencies, and dependencies of dependencies, along with each envelope’s own dependencies. This could be useful for resolving issues where a commit that could have been processed, was accidentally committed to the icebox. Generally, if an envelope has a dependency on something in the icebox already it means its dependency could not be processed, so it must also be iceboxed.

Source

fn future_dependents( &self, cursors: &[Cursor], ) -> Result<Vec<OrphanedEnvelope>, ConnectionError>

Returns envelopes that depend on any of the specified cursors, along with each envelope’s own dependencies. Does not return the cursors themselves, if they exist in the chain.

Source

fn ice(&self, orphans: Vec<OrphanedEnvelope>) -> Result<usize, ConnectionError>

cache the orphans until its parent(s) may be found.

Source

fn prune_icebox(&self) -> Result<usize, ConnectionError>

Removes icebox entries that have been processed according to refresh_state. Deletes entries where the refresh_state cursor for the group is at or beyond the icebox entry’s sequence_id, indicating the envelope has been processed.

Implementations on Foreign Types§

Source§

impl<T> QueryIcebox for &T
where T: QueryIcebox,

Implementors§