Absent

Struct Absent 

Source
pub struct Absent;
Expand description

Type-level False.

Trait Implementations§

Source§

impl Bool for Absent

Source§

const VALUE: bool = false

Source§

type If<Then, Else> = Else

Type-level conditional: If<Then, Else> (General Type Selector)
Source§

type Elif<Then: Bool, Else: Bool> = Else

Type-level boolean conditional: Then<T, E> where T, E are Bool. Returns a type guaranteed to implement Bool.
Source§

type And<Other: Bool> = Absent

Logical AND
Source§

type Or<Other: Bool> = Other

Logical OR
Source§

fn static_dispatch<Then, Else, Output>() -> Output
where Then: StaticMethodImpl<Output>, Else: StaticMethodImpl<Output>,

Call a static method based on this boolean value. If true (Present), calls Then::call(). If false (Absent), calls Else::call().
Source§

impl BoolNot for Absent

Source§

impl<Then, Else, Output> BoolStaticCall<Then, Else, Output> for Absent
where Else: StaticMethodImpl<Output>,

Source§

fn call() -> Output

Source§

impl Debug for Absent

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<B1, B2> GateBodyEq<B1, B2> for Absent

Source§

impl<A> IntersectLeafHelper<A> for Absent

Source§

impl<NewCap, StoredCap, Depth> LeafCollisionBranch<NewCap, StoredCap, Absent, Depth, X0> for Leaf<StoredCap>
where StoredCap: Capability, NewCap: Capability, Empty: InsertAt<StoredCap, S<Depth>>, <Empty as InsertAt<StoredCap, S<Depth>>>::Out: InsertAt<NewCap, S<Depth>>,

Source§

type Out = Node16<<<Empty as InsertAt<StoredCap, S<Depth>>>::Out as InsertAt<NewCap, S<Depth>>>::Out, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty>

Source§

impl<NewCap, StoredCap, Depth> LeafCollisionBranch<NewCap, StoredCap, Absent, Depth, X1> for Leaf<StoredCap>
where StoredCap: Capability, NewCap: Capability, Empty: InsertAt<StoredCap, S<Depth>>, <Empty as InsertAt<StoredCap, S<Depth>>>::Out: InsertAt<NewCap, S<Depth>>,

Source§

type Out = Node16<Empty, <<Empty as InsertAt<StoredCap, S<Depth>>>::Out as InsertAt<NewCap, S<Depth>>>::Out, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty>

Source§

impl<NewCap, StoredCap, Depth> LeafCollisionBranch<NewCap, StoredCap, Absent, Depth, X2> for Leaf<StoredCap>
where StoredCap: Capability, NewCap: Capability, Empty: InsertAt<StoredCap, S<Depth>>, <Empty as InsertAt<StoredCap, S<Depth>>>::Out: InsertAt<NewCap, S<Depth>>,

Source§

type Out = Node16<Empty, Empty, <<Empty as InsertAt<StoredCap, S<Depth>>>::Out as InsertAt<NewCap, S<Depth>>>::Out, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty>

Source§

impl<NewCap, StoredCap, Depth> LeafCollisionBranch<NewCap, StoredCap, Absent, Depth, X3> for Leaf<StoredCap>
where StoredCap: Capability, NewCap: Capability, Empty: InsertAt<StoredCap, S<Depth>>, <Empty as InsertAt<StoredCap, S<Depth>>>::Out: InsertAt<NewCap, S<Depth>>,

Source§

type Out = Node16<Empty, Empty, Empty, <<Empty as InsertAt<StoredCap, S<Depth>>>::Out as InsertAt<NewCap, S<Depth>>>::Out, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty>

Source§

impl<NewCap, StoredCap, Depth> LeafCollisionBranch<NewCap, StoredCap, Absent, Depth, X4> for Leaf<StoredCap>
where StoredCap: Capability, NewCap: Capability, Empty: InsertAt<StoredCap, S<Depth>>, <Empty as InsertAt<StoredCap, S<Depth>>>::Out: InsertAt<NewCap, S<Depth>>,

Source§

type Out = Node16<Empty, Empty, Empty, Empty, <<Empty as InsertAt<StoredCap, S<Depth>>>::Out as InsertAt<NewCap, S<Depth>>>::Out, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty>

Source§

impl<NewCap, StoredCap, Depth> LeafCollisionBranch<NewCap, StoredCap, Absent, Depth, X5> for Leaf<StoredCap>
where StoredCap: Capability, NewCap: Capability, Empty: InsertAt<StoredCap, S<Depth>>, <Empty as InsertAt<StoredCap, S<Depth>>>::Out: InsertAt<NewCap, S<Depth>>,

Source§

type Out = Node16<Empty, Empty, Empty, Empty, Empty, <<Empty as InsertAt<StoredCap, S<Depth>>>::Out as InsertAt<NewCap, S<Depth>>>::Out, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty>

Source§

impl<NewCap, StoredCap, Depth> LeafCollisionBranch<NewCap, StoredCap, Absent, Depth, X6> for Leaf<StoredCap>
where StoredCap: Capability, NewCap: Capability, Empty: InsertAt<StoredCap, S<Depth>>, <Empty as InsertAt<StoredCap, S<Depth>>>::Out: InsertAt<NewCap, S<Depth>>,

Source§

type Out = Node16<Empty, Empty, Empty, Empty, Empty, Empty, <<Empty as InsertAt<StoredCap, S<Depth>>>::Out as InsertAt<NewCap, S<Depth>>>::Out, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty>

Source§

impl<NewCap, StoredCap, Depth> LeafCollisionBranch<NewCap, StoredCap, Absent, Depth, X7> for Leaf<StoredCap>
where StoredCap: Capability, NewCap: Capability, Empty: InsertAt<StoredCap, S<Depth>>, <Empty as InsertAt<StoredCap, S<Depth>>>::Out: InsertAt<NewCap, S<Depth>>,

Source§

type Out = Node16<Empty, Empty, Empty, Empty, Empty, Empty, Empty, <<Empty as InsertAt<StoredCap, S<Depth>>>::Out as InsertAt<NewCap, S<Depth>>>::Out, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty>

Source§

impl<NewCap, StoredCap, Depth> LeafCollisionBranch<NewCap, StoredCap, Absent, Depth, X8> for Leaf<StoredCap>
where StoredCap: Capability, NewCap: Capability, Empty: InsertAt<StoredCap, S<Depth>>, <Empty as InsertAt<StoredCap, S<Depth>>>::Out: InsertAt<NewCap, S<Depth>>,

Source§

type Out = Node16<Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, <<Empty as InsertAt<StoredCap, S<Depth>>>::Out as InsertAt<NewCap, S<Depth>>>::Out, Empty, Empty, Empty, Empty, Empty, Empty, Empty>

Source§

impl<NewCap, StoredCap, Depth> LeafCollisionBranch<NewCap, StoredCap, Absent, Depth, X9> for Leaf<StoredCap>
where StoredCap: Capability, NewCap: Capability, Empty: InsertAt<StoredCap, S<Depth>>, <Empty as InsertAt<StoredCap, S<Depth>>>::Out: InsertAt<NewCap, S<Depth>>,

Source§

type Out = Node16<Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, <<Empty as InsertAt<StoredCap, S<Depth>>>::Out as InsertAt<NewCap, S<Depth>>>::Out, Empty, Empty, Empty, Empty, Empty, Empty>

Source§

impl<NewCap, StoredCap, Depth> LeafCollisionBranch<NewCap, StoredCap, Absent, Depth, XA> for Leaf<StoredCap>
where StoredCap: Capability, NewCap: Capability, Empty: InsertAt<StoredCap, S<Depth>>, <Empty as InsertAt<StoredCap, S<Depth>>>::Out: InsertAt<NewCap, S<Depth>>,

Source§

type Out = Node16<Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, <<Empty as InsertAt<StoredCap, S<Depth>>>::Out as InsertAt<NewCap, S<Depth>>>::Out, Empty, Empty, Empty, Empty, Empty>

Source§

impl<NewCap, StoredCap, Depth> LeafCollisionBranch<NewCap, StoredCap, Absent, Depth, XB> for Leaf<StoredCap>
where StoredCap: Capability, NewCap: Capability, Empty: InsertAt<StoredCap, S<Depth>>, <Empty as InsertAt<StoredCap, S<Depth>>>::Out: InsertAt<NewCap, S<Depth>>,

Source§

type Out = Node16<Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, <<Empty as InsertAt<StoredCap, S<Depth>>>::Out as InsertAt<NewCap, S<Depth>>>::Out, Empty, Empty, Empty, Empty>

Source§

impl<NewCap, StoredCap, Depth> LeafCollisionBranch<NewCap, StoredCap, Absent, Depth, XC> for Leaf<StoredCap>
where StoredCap: Capability, NewCap: Capability, Empty: InsertAt<StoredCap, S<Depth>>, <Empty as InsertAt<StoredCap, S<Depth>>>::Out: InsertAt<NewCap, S<Depth>>,

Source§

type Out = Node16<Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, <<Empty as InsertAt<StoredCap, S<Depth>>>::Out as InsertAt<NewCap, S<Depth>>>::Out, Empty, Empty, Empty>

Source§

impl<NewCap, StoredCap, Depth> LeafCollisionBranch<NewCap, StoredCap, Absent, Depth, XD> for Leaf<StoredCap>
where StoredCap: Capability, NewCap: Capability, Empty: InsertAt<StoredCap, S<Depth>>, <Empty as InsertAt<StoredCap, S<Depth>>>::Out: InsertAt<NewCap, S<Depth>>,

Source§

type Out = Node16<Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, <<Empty as InsertAt<StoredCap, S<Depth>>>::Out as InsertAt<NewCap, S<Depth>>>::Out, Empty, Empty>

Source§

impl<NewCap, StoredCap, Depth> LeafCollisionBranch<NewCap, StoredCap, Absent, Depth, XE> for Leaf<StoredCap>
where StoredCap: Capability, NewCap: Capability, Empty: InsertAt<StoredCap, S<Depth>>, <Empty as InsertAt<StoredCap, S<Depth>>>::Out: InsertAt<NewCap, S<Depth>>,

Source§

type Out = Node16<Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, <<Empty as InsertAt<StoredCap, S<Depth>>>::Out as InsertAt<NewCap, S<Depth>>>::Out, Empty>

Source§

impl<NewCap, StoredCap, Depth> LeafCollisionBranch<NewCap, StoredCap, Absent, Depth, XF> for Leaf<StoredCap>
where StoredCap: Capability, NewCap: Capability, Empty: InsertAt<StoredCap, S<Depth>>, <Empty as InsertAt<StoredCap, S<Depth>>>::Out: InsertAt<NewCap, S<Depth>>,

Source§

type Out = Node16<Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, Empty, <<Empty as InsertAt<StoredCap, S<Depth>>>::Out as InsertAt<NewCap, S<Depth>>>::Out>

Source§

impl<S> LeafRemove<Absent> for Leaf<S>

Source§

type Out = Leaf<S>

Source§

impl<TailA, TailB, L> StreamEqDispatch<TailA, TailB, L> for Absent

Auto Trait Implementations§

§

impl Freeze for Absent

§

impl RefUnwindSafe for Absent

§

impl Send for Absent

§

impl Sync for Absent

§

impl Unpin for Absent

§

impl UnwindSafe for Absent

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<A, B> BoolAnd<B> for A
where A: Bool, B: Bool,

Source§

type Out = <A as Bool>::And<B>

Source§

impl<A, B> BoolOr<B> for A
where A: Bool, B: Bool,

Source§

type Out = <A as Bool>::Or<B>

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Ctx, H, T> Evaluate<All<HCons<H, T>>> for Ctx
where Ctx: Evaluate<H> + Evaluate<All<T>>, <Ctx as Evaluate<H>>::Out: BoolAnd<<Ctx as Evaluate<All<T>>>::Out>,

Source§

type Out = <<Ctx as Evaluate<H>>::Out as BoolAnd<<Ctx as Evaluate<All<T>>>::Out>>::Out

Source§

const RESULT: bool = <Self::Out as Bool>::VALUE

The boolean result of the evaluation as a constant.
Source§

impl<Ctx> Evaluate<All<HNil>> for Ctx

Source§

type Out = Present

Source§

const RESULT: bool = <Self::Out as Bool>::VALUE

The boolean result of the evaluation as a constant.
Source§

impl<Ctx, L, R> Evaluate<And<L, R>> for Ctx
where Ctx: Evaluate<L> + Evaluate<R>, <Ctx as Evaluate<L>>::Out: BoolAnd<<Ctx as Evaluate<R>>::Out>,

Source§

type Out = <<Ctx as Evaluate<L>>::Out as BoolAnd<<Ctx as Evaluate<R>>::Out>>::Out

Source§

const RESULT: bool = <Self::Out as Bool>::VALUE

The boolean result of the evaluation as a constant.
Source§

impl<Ctx, H, T> Evaluate<Any<HCons<H, T>>> for Ctx
where Ctx: Evaluate<H> + Evaluate<Any<T>>, <Ctx as Evaluate<H>>::Out: BoolOr<<Ctx as Evaluate<Any<T>>>::Out>,

Source§

type Out = <<Ctx as Evaluate<H>>::Out as BoolOr<<Ctx as Evaluate<Any<T>>>::Out>>::Out

Source§

const RESULT: bool = <Self::Out as Bool>::VALUE

The boolean result of the evaluation as a constant.
Source§

impl<Ctx> Evaluate<Any<HNil>> for Ctx

Source§

type Out = Absent

Source§

const RESULT: bool = <Self::Out as Bool>::VALUE

The boolean result of the evaluation as a constant.
Source§

impl<Ctx, L, R> Evaluate<Or<L, R>> for Ctx
where Ctx: Evaluate<L> + Evaluate<R>, <Ctx as Evaluate<L>>::Out: BoolOr<<Ctx as Evaluate<R>>::Out>,

Source§

type Out = <<Ctx as Evaluate<L>>::Out as BoolOr<<Ctx as Evaluate<R>>::Out>>::Out

Source§

const RESULT: bool = <Self::Out as Bool>::VALUE

The boolean result of the evaluation as a constant.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S, Cap> InsertIf<Cap, false> for S

Source§

type Out = S

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<S, Q1, Q2, Then, Else> SelectAnd<Q1, Q2, Then, Else> for S
where S: SelectCap<And<Q1, Q2>, Then, Else>,

Source§

type Out = <S as SelectCap<And<Q1, Q2>, Then, Else>>::Out

Source§

impl<S, Q, Then, Else> SelectCap<Q, Then, Else> for S
where S: Evaluate<Q>, <S as Evaluate<Q>>::Out: Bool,

Source§

type Out = <<S as Evaluate<Q>>::Out as Bool>::If<Then, Else>

Source§

impl<S, Q, Then, Else> SelectNot<Q, Then, Else> for S
where S: SelectCap<Not<Q>, Then, Else>,

Source§

type Out = <S as SelectCap<Not<Q>, Then, Else>>::Out

Source§

impl<S, Q1, Q2, Then, Else> SelectOr<Q1, Q2, Then, Else> for S
where S: SelectCap<Or<Q1, Q2>, Then, Else>,

Source§

type Out = <S as SelectCap<Or<Q1, Q2>, Then, Else>>::Out

Source§

impl<S, Q, Then, Else, Output> SelectStaticCall<Q, Then, Else, Output> for S
where S: Evaluate<Q>, <S as Evaluate<Q>>::Out: Bool, Then: StaticMethodImpl<Output>, Else: StaticMethodImpl<Output>,

Source§

fn call() -> Output

Source§

impl<S, Q, Then, Else> SelectType<Q, Then, Else> for S
where S: Evaluate<Q>, <S as Evaluate<Q>>::Out: Bool,

Source§

type Out = <<S as Evaluate<Q>>::Out as Bool>::If<Then, Else>

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> SupersetOf<Empty> for T