Struct Zero

Source
pub struct Zero<X: Int = Term>(/* private fields */);

Trait Implementations§

Source§

impl<X: Default + Int> Default for Zero<X>

Source§

fn default() -> Zero<X>

Returns the “default value” for a type. Read more
Source§

impl<X: Int> Int for Zero<X>

Source§

impl<X: Int> IntAbs for Zero<X>
where Term: IntLteCmp<Zero<X>, Zero<X>, <Zero<X> as IntNeg>::Output>, Zero<X>: IntNeg,

Source§

type Output = <Term as IntLteCmp<Zero<X>, Zero<X>, <Zero<X> as IntNeg>::Output>>::Output

Source§

impl<M, N: Int> IntAdd<Minus<N>> for Zero<M>
where M: IntAdd<N> + Int,

Source§

type Output = Minus<<M as IntAdd<N>>::Output>

Source§

impl<M, N: Int> IntAdd<Plus<N>> for Zero<M>
where M: IntAdd<N> + Int,

Source§

type Output = Plus<<M as IntAdd<N>>::Output>

Source§

impl<N: Int> IntAdd<Term> for Zero<N>
where Zero<N>: Unique,

Source§

impl<N: Int> IntAdd<Undefined> for Zero<N>

Source§

impl<M, N: Int> IntAdd<Zero<N>> for Minus<M>
where M: IntAdd<N> + Int,

Source§

type Output = Minus<<M as IntAdd<N>>::Output>

Source§

impl<M, N: Int> IntAdd<Zero<N>> for Plus<M>
where M: IntAdd<N> + Int,

Source§

type Output = Plus<<M as IntAdd<N>>::Output>

Source§

impl<N: Int> IntAdd<Zero<N>> for Term
where Zero<N>: Unique,

Source§

impl<N: Int> IntAdd<Zero<N>> for Undefined

Source§

impl<M, N: Int> IntAdd<Zero<N>> for Zero<M>
where Zero<<M as IntAdd<N>>::Output>: Unique, M: IntAdd<N> + Int,

Source§

type Output = <Zero<<M as IntAdd<N>>::Output> as Unique>::Output

Source§

impl<M, N: Int, L: Int, E: Int, G: Int> IntCmp<Minus<N>, L, E, G> for Zero<M>
where M: IntCmp<N, L, G, G> + Int,

Source§

type Output = <M as IntCmp<N, L, G, G>>::Output

Source§

impl<M, N: Int, L: Int, E: Int, G: Int> IntCmp<Plus<N>, L, E, G> for Zero<M>
where M: IntCmp<N, L, L, G> + Int,

Source§

type Output = <M as IntCmp<N, L, L, G>>::Output

Source§

impl<N, L: Int, E: Int, G: Int> IntCmp<Term, L, E, G> for Zero<N>
where N: IntCmp<Term, L, E, G> + Int,

Source§

type Output = <N as IntCmp<Term, L, E, G>>::Output

Source§

impl<M, N: Int, L: Int, E: Int, G: Int> IntCmp<Zero<N>, L, E, G> for Minus<M>
where M: IntCmp<N, L, L, G> + Int,

Source§

type Output = <M as IntCmp<N, L, L, G>>::Output

Source§

impl<M, N: Int, L: Int, E: Int, G: Int> IntCmp<Zero<N>, L, E, G> for Plus<M>
where M: IntCmp<N, L, G, G> + Int,

Source§

type Output = <M as IntCmp<N, L, G, G>>::Output

Source§

impl<N: Int, L: Int, E: Int, G: Int> IntCmp<Zero<N>, L, E, G> for Term
where Term: IntCmp<N, L, E, G>,

Source§

type Output = <Term as IntCmp<N, L, E, G>>::Output

Source§

impl<M, N: Int, L: Int, E: Int, G: Int> IntCmp<Zero<N>, L, E, G> for Zero<M>
where M: IntCmp<N, L, E, G> + Int,

Source§

type Output = <M as IntCmp<N, L, E, G>>::Output

Source§

impl<M, N: Int, L: IntPair, E: IntPair, G: IntPair> IntCmp2<Minus<N>, L, E, G> for Zero<M>
where M: IntCmp2<N, L, G, G> + Int,

Source§

type Output = <M as IntCmp2<N, L, G, G>>::Output

Source§

impl<M, N: Int, L: IntPair, E: IntPair, G: IntPair> IntCmp2<Plus<N>, L, E, G> for Zero<M>
where M: IntCmp2<N, L, L, G> + Int,

Source§

type Output = <M as IntCmp2<N, L, L, G>>::Output

Source§

impl<N, L: IntPair, E: IntPair, G: IntPair> IntCmp2<Term, L, E, G> for Zero<N>
where N: IntCmp2<Term, L, E, G> + Int,

Source§

type Output = <N as IntCmp2<Term, L, E, G>>::Output

Source§

impl<M, N: Int, L: IntPair, E: IntPair, G: IntPair> IntCmp2<Zero<N>, L, E, G> for Minus<M>
where M: IntCmp2<N, L, L, G> + Int,

Source§

type Output = <M as IntCmp2<N, L, L, G>>::Output

Source§

impl<M, N: Int, L: IntPair, E: IntPair, G: IntPair> IntCmp2<Zero<N>, L, E, G> for Plus<M>
where M: IntCmp2<N, L, G, G> + Int,

Source§

type Output = <M as IntCmp2<N, L, G, G>>::Output

Source§

impl<N: Int, L: IntPair, E: IntPair, G: IntPair> IntCmp2<Zero<N>, L, E, G> for Term
where Term: IntCmp2<N, L, E, G>,

Source§

type Output = <Term as IntCmp2<N, L, E, G>>::Output

Source§

impl<M, N: Int, L: IntPair, E: IntPair, G: IntPair> IntCmp2<Zero<N>, L, E, G> for Zero<M>
where M: IntCmp2<N, L, E, G> + Int,

Source§

type Output = <M as IntCmp2<N, L, E, G>>::Output

Source§

impl<N: Int, D: Int> IntDiv<Minus<D>> for Zero<N>

Source§

impl<N: Int, D: Int> IntDiv<Plus<D>> for Zero<N>

Source§

impl<N: Int, D: Int> IntDiv<Zero<D>> for Minus<N>

Source§

impl<N: Int, D: Int> IntDiv<Zero<D>> for Plus<N>

Source§

impl<D: Int> IntDiv<Zero<D>> for Term

Source§

impl<N: Int, D: Int> IntDiv<Zero<D>> for Zero<N>

Source§

impl<N, D: Int, R, Q> IntDivInternal<D, Int2<R, Q>> for Zero<N>
where N: IntDivInternal<D, <<R as IntTriple>::Output as IntAbsMinThreeCmp<<<R as IntTriple>::Output as IntSub<D>>::Output, <<R as IntTriple>::Output as IntAdd<D>>::Output, <Q as IntTriple>::Output, Plus<Q>, Minus<Q>>>::Output> + Int, <R as IntTriple>::Output: IntAbsMinThreeCmp<<<R as IntTriple>::Output as IntSub<D>>::Output, <<R as IntTriple>::Output as IntAdd<D>>::Output, <Q as IntTriple>::Output, Plus<Q>, Minus<Q>> + IntSub<D> + IntAdd<D>, R: IntTriple + Int, Q: IntTriple + Int,

Source§

type Output = <N as IntDivInternal<D, <<R as IntTriple>::Output as IntAbsMinThreeCmp<<<R as IntTriple>::Output as IntSub<D>>::Output, <<R as IntTriple>::Output as IntAdd<D>>::Output, <Q as IntTriple>::Output, Plus<Q>, Minus<Q>>>::Output>>::Output

Source§

impl<M, N: Int> IntMul<Minus<N>> for Zero<M>
where M: IntMul<Zero<Minus<N>>> + Int,

Source§

type Output = <M as IntMul<Zero<Minus<N>>>>::Output

Source§

impl<M, N: Int> IntMul<Plus<N>> for Zero<M>
where M: IntMul<Zero<Plus<M>>> + Int,

Source§

type Output = <M as IntMul<Zero<Plus<M>>>>::Output

Source§

impl<N: Int> IntMul<Term> for Zero<N>

Source§

impl<N: Int> IntMul<Undefined> for Zero<N>

Source§

impl<M, N: Int> IntMul<Zero<N>> for Minus<M>
where <M as IntMul<Zero<Zero<N>>>>::Output: IntSub<Zero<N>>, M: IntMul<Zero<Zero<N>>> + Int,

Source§

type Output = <<M as IntMul<Zero<Zero<N>>>>::Output as IntSub<Zero<N>>>::Output

Source§

impl<M, N: Int> IntMul<Zero<N>> for Plus<M>
where <M as IntMul<Zero<Zero<N>>>>::Output: IntAdd<Zero<N>>, M: IntMul<Zero<Zero<N>>> + Int,

Source§

type Output = <<M as IntMul<Zero<Zero<N>>>>::Output as IntAdd<Zero<N>>>::Output

Source§

impl<N: Int> IntMul<Zero<N>> for Term

Source§

impl<N: Int> IntMul<Zero<N>> for Undefined

Source§

impl<M, N: Int> IntMul<Zero<N>> for Zero<M>
where M: IntMul<Zero<Zero<N>>> + Int,

Source§

type Output = <M as IntMul<Zero<Zero<N>>>>::Output

Source§

impl IntNeg for Zero<Term>

Source§

impl<N> IntNeg for Zero<Minus<N>>
where N: IntNeg + Int,

Source§

impl<N> IntNeg for Zero<Plus<N>>
where N: IntNeg + Int,

Source§

impl<N: Int> IntNeg for Zero<Zero<N>>
where Zero<N>: IntNeg,

Source§

impl<N: Int> IntPred for Zero<N>

Source§

impl<N: Int, D: Int> IntRem<Minus<D>> for Zero<N>

Source§

impl<N: Int, D: Int> IntRem<Plus<D>> for Zero<N>

Source§

impl<N: Int, D: Int> IntRem<Zero<D>> for Minus<N>

Source§

impl<N: Int, D: Int> IntRem<Zero<D>> for Plus<N>

Source§

impl<D: Int> IntRem<Zero<D>> for Term

Source§

impl<N: Int, D: Int> IntRem<Zero<D>> for Zero<N>

Source§

impl<M, N: Int> IntRevInternal<N> for Zero<M>
where M: IntRevInternal<Zero<N>> + Int,

Source§

impl<M, N: Int> IntSub<Minus<N>> for Zero<M>
where M: IntSub<N> + Int,

Source§

type Output = Plus<<M as IntSub<N>>::Output>

Source§

impl<M, N: Int> IntSub<Plus<N>> for Zero<M>
where M: IntSub<N> + Int,

Source§

type Output = Minus<<M as IntSub<N>>::Output>

Source§

impl<N: Int> IntSub<Term> for Zero<N>
where Zero<N>: Unique,

Source§

impl<N: Int> IntSub<Undefined> for Zero<N>

Source§

impl<M, N: Int> IntSub<Zero<N>> for Minus<M>
where M: IntSub<N> + Int,

Source§

type Output = Minus<<M as IntSub<N>>::Output>

Source§

impl<M, N: Int> IntSub<Zero<N>> for Plus<M>
where M: IntSub<N> + Int,

Source§

type Output = Plus<<M as IntSub<N>>::Output>

Source§

impl<N: Int> IntSub<Zero<N>> for Term
where Zero<N>: IntNeg,

Source§

impl<N: Int> IntSub<Zero<N>> for Undefined

Source§

impl<M, N: Int> IntSub<Zero<N>> for Zero<M>
where Zero<<M as IntSub<N>>::Output>: Unique, M: IntSub<N> + Int,

Source§

type Output = <Zero<<M as IntSub<N>>::Output> as Unique>::Output

Source§

impl<N: Int> IntSucc for Zero<N>

Source§

impl<N: Int> IntTriple for Zero<N>

Source§

impl Unique for Zero<Term>

Source§

impl<N> Unique for Zero<Minus<N>>
where N: Unique + Int,

Source§

impl<N> Unique for Zero<Plus<N>>
where N: Unique + Int,

Source§

impl<N: Int> Unique for Zero<Zero<N>>
where Zero<N>: Unique,

Auto Trait Implementations§

§

impl<X> Freeze for Zero<X>

§

impl<X> RefUnwindSafe for Zero<X>
where X: RefUnwindSafe,

§

impl<X> Send for Zero<X>
where X: Send,

§

impl<X> Sync for Zero<X>
where X: Sync,

§

impl<X> Unpin for Zero<X>
where X: Unpin,

§

impl<X> UnwindSafe for Zero<X>
where X: UnwindSafe,

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<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<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<X, Y, Z, A, B, C> IntAbsMinThreeCmp<Y, Z, A, B, C> for X
where X: Int + IntAbs, Y: Int + IntAbs, Z: Int + IntAbs, A: Int, B: Int, C: Int, <Y as IntAbs>::Output: IntLteCmp2<<Z as IntAbs>::Output, <<X as IntAbs>::Output as IntLteCmp2<<Y as IntAbs>::Output, Int2<X, A>, Int2<Y, B>>>::Output, <<X as IntAbs>::Output as IntLteCmp2<<Z as IntAbs>::Output, Int2<X, A>, Int2<Z, C>>>::Output>, <X as IntAbs>::Output: IntLteCmp2<<Y as IntAbs>::Output, Int2<X, A>, Int2<Y, B>> + IntLteCmp2<<Z as IntAbs>::Output, Int2<X, A>, Int2<Z, C>>,

Source§

type Output = <<Y as IntAbs>::Output as IntLteCmp2<<Z as IntAbs>::Output, <<X as IntAbs>::Output as IntLteCmp2<<Y as IntAbs>::Output, Int2<X, A>, Int2<Y, B>>>::Output, <<X as IntAbs>::Output as IntLteCmp2<<Z as IntAbs>::Output, Int2<X, A>, Int2<Z, C>>>::Output>>::Output

Source§

impl<X, Y, LE, G> IntLteCmp<Y, LE, G> for X
where X: Int + IntCmp<Y, LE, LE, G>, Y: Int, LE: Int, G: Int,

Source§

type Output = <X as IntCmp<Y, LE, LE, G>>::Output

Source§

impl<X, Y, LE, G> IntLteCmp2<Y, LE, G> for X
where X: Int + IntCmp2<Y, LE, LE, G>, Y: Int, LE: IntPair, G: IntPair,

Source§

type Output = <X as IntCmp2<Y, LE, LE, G>>::Output

Source§

impl<N> IntRev for N
where N: Int + IntRevInternal<Term>,

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<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> All for T
where T: ?Sized,