Skip to main content

ToRedChainVec

Trait ToRedChainVec 

Source
pub trait ToRedChainVec<'db> {
    // Required method
    async fn to_red_chain_vec(
        &self,
        env: &mut Env<'db>,
        live_after: LivePlaces,
        direction: Direction,
        consumer: Consumer<'_, 'db, Vec<RedChain<'db>>, Errors<()>>,
    ) -> Errors<()>;
}
Expand description

Create a Vec<RedChain>, each of which are a canonical list of permissions. Canonical means that

  • inference variables have been bounded,
  • permissions have been flattened into distinct chains (ref[p, q] => ref[p], ref[q]),
  • copy applications reduced (mut[p] ref[q] => ref[q]),
  • and tails expanded (mut[q] => mut[q] mut[p], given let q: mut[p] String).

The consumer callback may be invoked multiple times as a result of inference variable bounding. Each callback is given a vector corresponding to the collected results from some_expanded_red_chain in dada-model.

Required Methods§

Source

async fn to_red_chain_vec( &self, env: &mut Env<'db>, live_after: LivePlaces, direction: Direction, consumer: Consumer<'_, 'db, Vec<RedChain<'db>>, Errors<()>>, ) -> Errors<()>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'db, T: ToRedLinkVecs<'db>> ToRedChainVec<'db> for T