Trait ClaimVar

Source
pub trait ClaimVar {
    type Claimed;

    // Required method
    fn claim(self, ctx: &mut StepCtx<'_>) -> Self::Claimed;
}
Expand description

Claim one or more flowey Vars for a particular step.

By having this be a trait, it is possible to claim both single instances of ReadVar / WriteVar, as well as whole collections of Vars.

Required Associated Types§

Source

type Claimed

The claimed version of Self.

Required Methods§

Source

fn claim(self, ctx: &mut StepCtx<'_>) -> Self::Claimed

Claim the Var for this step, allowing it to be accessed at runtime.

Implementations on Foreign Types§

Source§

impl<A> ClaimVar for (A,)
where A: ClaimVar,

Source§

type Claimed = (<A as ClaimVar>::Claimed,)

Source§

fn claim(self, ctx: &mut StepCtx<'_>) -> Self::Claimed

Source§

impl<A, B> ClaimVar for (A, B)
where A: ClaimVar, B: ClaimVar,

Source§

type Claimed = (<A as ClaimVar>::Claimed, <B as ClaimVar>::Claimed)

Source§

fn claim(self, ctx: &mut StepCtx<'_>) -> Self::Claimed

Source§

impl<A, B, C> ClaimVar for (A, B, C)
where A: ClaimVar, B: ClaimVar, C: ClaimVar,

Source§

type Claimed = (<A as ClaimVar>::Claimed, <B as ClaimVar>::Claimed, <C as ClaimVar>::Claimed)

Source§

fn claim(self, ctx: &mut StepCtx<'_>) -> Self::Claimed

Source§

impl<A, B, C, D> ClaimVar for (A, B, C, D)
where A: ClaimVar, B: ClaimVar, C: ClaimVar, D: ClaimVar,

Source§

type Claimed = (<A as ClaimVar>::Claimed, <B as ClaimVar>::Claimed, <C as ClaimVar>::Claimed, <D as ClaimVar>::Claimed)

Source§

fn claim(self, ctx: &mut StepCtx<'_>) -> Self::Claimed

Source§

impl<A, B, C, D, E> ClaimVar for (A, B, C, D, E)
where A: ClaimVar, B: ClaimVar, C: ClaimVar, D: ClaimVar, E: ClaimVar,

Source§

type Claimed = (<A as ClaimVar>::Claimed, <B as ClaimVar>::Claimed, <C as ClaimVar>::Claimed, <D as ClaimVar>::Claimed, <E as ClaimVar>::Claimed)

Source§

fn claim(self, ctx: &mut StepCtx<'_>) -> Self::Claimed

Source§

impl<A, B, C, D, E, F> ClaimVar for (A, B, C, D, E, F)
where A: ClaimVar, B: ClaimVar, C: ClaimVar, D: ClaimVar, E: ClaimVar, F: ClaimVar,

Source§

type Claimed = (<A as ClaimVar>::Claimed, <B as ClaimVar>::Claimed, <C as ClaimVar>::Claimed, <D as ClaimVar>::Claimed, <E as ClaimVar>::Claimed, <F as ClaimVar>::Claimed)

Source§

fn claim(self, ctx: &mut StepCtx<'_>) -> Self::Claimed

Source§

impl<A, B, C, D, E, F, G> ClaimVar for (A, B, C, D, E, F, G)
where A: ClaimVar, B: ClaimVar, C: ClaimVar, D: ClaimVar, E: ClaimVar, F: ClaimVar, G: ClaimVar,

Source§

type Claimed = (<A as ClaimVar>::Claimed, <B as ClaimVar>::Claimed, <C as ClaimVar>::Claimed, <D as ClaimVar>::Claimed, <E as ClaimVar>::Claimed, <F as ClaimVar>::Claimed, <G as ClaimVar>::Claimed)

Source§

fn claim(self, ctx: &mut StepCtx<'_>) -> Self::Claimed

Source§

impl<A, B, C, D, E, F, G, H> ClaimVar for (A, B, C, D, E, F, G, H)
where A: ClaimVar, B: ClaimVar, C: ClaimVar, D: ClaimVar, E: ClaimVar, F: ClaimVar, G: ClaimVar, H: ClaimVar,

Source§

type Claimed = (<A as ClaimVar>::Claimed, <B as ClaimVar>::Claimed, <C as ClaimVar>::Claimed, <D as ClaimVar>::Claimed, <E as ClaimVar>::Claimed, <F as ClaimVar>::Claimed, <G as ClaimVar>::Claimed, <H as ClaimVar>::Claimed)

Source§

fn claim(self, ctx: &mut StepCtx<'_>) -> Self::Claimed

Source§

impl<A, B, C, D, E, F, G, H, I> ClaimVar for (A, B, C, D, E, F, G, H, I)
where A: ClaimVar, B: ClaimVar, C: ClaimVar, D: ClaimVar, E: ClaimVar, F: ClaimVar, G: ClaimVar, H: ClaimVar, I: ClaimVar,

Source§

type Claimed = (<A as ClaimVar>::Claimed, <B as ClaimVar>::Claimed, <C as ClaimVar>::Claimed, <D as ClaimVar>::Claimed, <E as ClaimVar>::Claimed, <F as ClaimVar>::Claimed, <G as ClaimVar>::Claimed, <H as ClaimVar>::Claimed, <I as ClaimVar>::Claimed)

Source§

fn claim(self, ctx: &mut StepCtx<'_>) -> Self::Claimed

Source§

impl<A, B, C, D, E, F, G, H, I, J> ClaimVar for (A, B, C, D, E, F, G, H, I, J)
where A: ClaimVar, B: ClaimVar, C: ClaimVar, D: ClaimVar, E: ClaimVar, F: ClaimVar, G: ClaimVar, H: ClaimVar, I: ClaimVar, J: ClaimVar,

Source§

type Claimed = (<A as ClaimVar>::Claimed, <B as ClaimVar>::Claimed, <C as ClaimVar>::Claimed, <D as ClaimVar>::Claimed, <E as ClaimVar>::Claimed, <F as ClaimVar>::Claimed, <G as ClaimVar>::Claimed, <H as ClaimVar>::Claimed, <I as ClaimVar>::Claimed, <J as ClaimVar>::Claimed)

Source§

fn claim(self, ctx: &mut StepCtx<'_>) -> Self::Claimed

Source§

impl<T: ClaimVar> ClaimVar for Option<T>

Source§

type Claimed = Option<<T as ClaimVar>::Claimed>

Source§

fn claim(self, ctx: &mut StepCtx<'_>) -> Option<T::Claimed>

Source§

impl<T: ClaimVar> ClaimVar for Vec<T>

Source§

type Claimed = Vec<<T as ClaimVar>::Claimed>

Source§

fn claim(self, ctx: &mut StepCtx<'_>) -> Vec<T::Claimed>

Source§

impl<U: Ord, T: ClaimVar> ClaimVar for BTreeMap<U, T>

Source§

type Claimed = BTreeMap<U, <T as ClaimVar>::Claimed>

Source§

fn claim(self, ctx: &mut StepCtx<'_>) -> BTreeMap<U, T::Claimed>

Implementors§