pub trait ToRedLinkVecs<'db> {
// Required method
async fn to_red_linkvecs(
&self,
env: &mut Env<'db>,
live_after: LivePlaces,
direction: Direction,
consumer: Consumer<'_, 'db, Vec<Vec<RedLink<'db>>>, Errors<()>>,
) -> Errors<()>;
}Expand description
Convert the permission into a vector of red-links.
This is part of the red permission process and does three forms of processing.
- Copy links drop their prefix, so e.g.
mut[p] ref[q]becomes just[ref[q]] - Flattening, so
ref[p,q]becomes[ref[p], ref[q]]. - If inference variables are involved, we block waiting for their bounds.
The consumer callback may be invoked multiple times as a result of inference bounds.
Each callback has a list of lists of links.
Required Methods§
async fn to_red_linkvecs( &self, env: &mut Env<'db>, live_after: LivePlaces, direction: Direction, consumer: Consumer<'_, 'db, Vec<Vec<RedLink<'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.