referrerpolicy=no-referrer-when-downgrade
frame_support::traits

Trait EnsureOriginWithArg

Source
pub trait EnsureOriginWithArg<OuterOrigin, Argument> {
    type Success;

    // Required methods
    fn try_origin(
        o: OuterOrigin,
        a: &Argument,
    ) -> Result<Self::Success, OuterOrigin>;
    fn try_successful_origin(a: &Argument) -> Result<OuterOrigin, ()>;

    // Provided method
    fn ensure_origin(
        o: OuterOrigin,
        a: &Argument,
    ) -> Result<Self::Success, BadOrigin> { ... }
}
Expand description

Some sort of check on the origin is performed by this object.

Required Associated Types§

Source

type Success

A return type.

Required Methods§

Source

fn try_origin( o: OuterOrigin, a: &Argument, ) -> Result<Self::Success, OuterOrigin>

Perform the origin check, returning the origin value if unsuccessful. This allows chaining.

Source

fn try_successful_origin(a: &Argument) -> Result<OuterOrigin, ()>

Attempt to get an outer origin capable of passing try_origin check. May return Err if it is impossible.

** Should be used for benchmarking only!!! **

Provided Methods§

Source

fn ensure_origin( o: OuterOrigin, a: &Argument, ) -> Result<Self::Success, BadOrigin>

Perform the origin check.

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<O, A, Morph: for<'a> TryMorph<&'a A>, Inner: for<'a> EnsureOriginWithArg<O, <Morph as TryMorph<&'a A>>::Outcome, Success = Success>, Success> EnsureOriginWithArg<O, A> for TryWithMorphedArg<O, A, Morph, Inner, Success>

Source§

type Success = Success

Source§

impl<O, Original: EnsureOriginWithArg<O, A>, Mutator: Morph<Original::Success>, A> EnsureOriginWithArg<O, A> for MapSuccess<Original, Mutator>

Source§

type Success = <Mutator as Morph<<Original as EnsureOriginWithArg<O, A>>::Success>>::Outcome

Source§

impl<O: Clone, Original: EnsureOriginWithArg<O, A>, Mutator: TryMorph<Original::Success>, A> EnsureOriginWithArg<O, A> for TryMapSuccess<Original, Mutator>

Source§

type Success = <Mutator as TryMorph<<Original as EnsureOriginWithArg<O, A>>::Success>>::Outcome

Source§

impl<OO, Success, A> EnsureOriginWithArg<OO, A> for NeverEnsureOrigin<Success>

Source§

impl<OuterOrigin, Argument, EO: EnsureOrigin<OuterOrigin>> EnsureOriginWithArg<OuterOrigin, Argument> for AsEnsureOriginWithArg<EO>

Source§

type Success = <EO as EnsureOrigin<OuterOrigin>>::Success

Source§

impl<OuterOrigin, L: EnsureOriginWithArg<OuterOrigin, Argument>, R: EnsureOriginWithArg<OuterOrigin, Argument>, Argument> EnsureOriginWithArg<OuterOrigin, Argument> for EitherOfDiverse<L, R>

Source§

type Success = Either<<L as EnsureOriginWithArg<OuterOrigin, Argument>>::Success, <R as EnsureOriginWithArg<OuterOrigin, Argument>>::Success>

Source§

impl<OuterOrigin, L: EnsureOriginWithArg<OuterOrigin, Argument>, R: EnsureOriginWithArg<OuterOrigin, Argument, Success = L::Success>, Argument> EnsureOriginWithArg<OuterOrigin, Argument> for EitherOf<L, R>

Source§

type Success = <L as EnsureOriginWithArg<OuterOrigin, Argument>>::Success