Struct const_arithmetic::TypedInteger
source · pub struct TypedInteger<H0: Hex, H1: Hex, H2: Hex, H3: Hex, H4: Hex, H5: Hex, H6: Hex, H7: Hex> { /* private fields */ }
Expand description
A struct which generics represents an unique integer from 0 to 2 ** 32 - 1
Example
use const_arithmetic::*;
let a = parse_integer!(3);
// a has type TypedInteger<_3, _0, _0, _0, _0, _0, _0, _0>
Implementations§
Trait Implementations§
source§impl<H0: Clone + Hex, H1: Clone + Hex, H2: Clone + Hex, H3: Clone + Hex, H4: Clone + Hex, H5: Clone + Hex, H6: Clone + Hex, H7: Clone + Hex> Clone for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>
impl<H0: Clone + Hex, H1: Clone + Hex, H2: Clone + Hex, H3: Clone + Hex, H4: Clone + Hex, H5: Clone + Hex, H6: Clone + Hex, H7: Clone + Hex> Clone for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>
source§fn clone(&self) -> TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>
fn clone(&self) -> TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<H0: Hex, H1: Hex, H2: Hex, H3: Hex, H4: Hex, H5: Hex, H6: Hex, H7: Hex> IsInteger for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>
impl<H0: Hex, H1: Hex, H2: Hex, H3: Hex, H4: Hex, H5: Hex, H6: Hex, H7: Hex> IsInteger for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>
source§impl<N, H0, R0: Hex, C0: Hex, H1, R1: Hex, C1: Hex, H2, R2: Hex, C2: Hex, H3, R3: Hex, C3: Hex, H4, R4: Hex, C4: Hex, H5, R5: Hex, C5: Hex, H6, R6: Hex, C6: Hex, H7, R7: Hex, C7> TypedAdd<N> for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where
N: IsInteger,
H0: HexAdd<N::Hex0, Output = R0, Carry = C0> + Hex,
H1: HexAdd3<N::Hex1, C0, Output = R1, Carry = C1> + Hex,
H2: HexAdd3<N::Hex2, C1, Output = R2, Carry = C2> + Hex,
H3: HexAdd3<N::Hex3, C2, Output = R3, Carry = C3> + Hex,
H4: HexAdd3<N::Hex4, C3, Output = R4, Carry = C4> + Hex,
H5: HexAdd3<N::Hex5, C4, Output = R5, Carry = C5> + Hex,
H6: HexAdd3<N::Hex6, C5, Output = R6, Carry = C6> + Hex,
H7: HexAdd3<N::Hex7, C6, Output = R7, Carry = C7> + Hex,
C7: HexAssertEqual<_0> + Hex,
impl<N, H0, R0: Hex, C0: Hex, H1, R1: Hex, C1: Hex, H2, R2: Hex, C2: Hex, H3, R3: Hex, C3: Hex, H4, R4: Hex, C4: Hex, H5, R5: Hex, C5: Hex, H6, R6: Hex, C6: Hex, H7, R7: Hex, C7> TypedAdd<N> for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where N: IsInteger, H0: HexAdd<N::Hex0, Output = R0, Carry = C0> + Hex, H1: HexAdd3<N::Hex1, C0, Output = R1, Carry = C1> + Hex, H2: HexAdd3<N::Hex2, C1, Output = R2, Carry = C2> + Hex, H3: HexAdd3<N::Hex3, C2, Output = R3, Carry = C3> + Hex, H4: HexAdd3<N::Hex4, C3, Output = R4, Carry = C4> + Hex, H5: HexAdd3<N::Hex5, C4, Output = R5, Carry = C5> + Hex, H6: HexAdd3<N::Hex6, C5, Output = R6, Carry = C6> + Hex, H7: HexAdd3<N::Hex7, C6, Output = R7, Carry = C7> + Hex, C7: HexAssertEqual<_0> + Hex,
type Output = TypedInteger<R0, R1, R2, R3, R4, R5, R6, R7>
source§impl<K, Hx0: Hex, Hx1: Hex, Hx2: Hex, Hx3: Hex, Hx4: Hex, Hx5: Hex, Hx6: Hex, Hx7: Hex, H1: IsInteger, Q1: IsInteger, H2: IsInteger, Q2: IsInteger, H3: IsInteger, Q3: IsInteger, H4: IsInteger, Q4: IsInteger, H5: IsInteger, Q5: IsInteger, H6: IsInteger, Q6: IsInteger, H7: IsInteger, Q7: IsInteger, H8: IsInteger, Q8: IsInteger, H9: IsInteger, Q9: IsInteger, H10: IsInteger, Q10: IsInteger, H11: IsInteger, Q11: IsInteger, H12: IsInteger, Q12: IsInteger, H13: IsInteger, Q13: IsInteger, H14: IsInteger, Q14: IsInteger, H15: IsInteger, Q15: IsInteger, H16: IsInteger, Q16: IsInteger, H17: IsInteger, Q17: IsInteger, H18: IsInteger, Q18: IsInteger, H19: IsInteger, Q19: IsInteger, H20: IsInteger, Q20: IsInteger, H21: IsInteger, Q21: IsInteger, H22: IsInteger, Q22: IsInteger, H23: IsInteger, Q23: IsInteger, H24: IsInteger, Q24: IsInteger, H25: IsInteger, Q25: IsInteger, H26: IsInteger, Q26: IsInteger, H27: IsInteger, Q27: IsInteger, H28: IsInteger, Q28: IsInteger, H29: IsInteger, Q29: IsInteger, H30: IsInteger, Q30: IsInteger, H31: IsInteger, Q31: IsInteger, H32: IsInteger, Q32: IsInteger, B, Eq1, Eq0, H33: IsInteger, Q33: IsInteger, HResult: IsInteger, QResult: IsInteger> TypedDiv<K> for TypedInteger<Hx0, Hx1, Hx2, Hx3, Hx4, Hx5, Hx6, Hx7>where
K: TypedGreaterThan<TypedInteger<_0, _0, _0, _0, _0, _0, _0, _0>, Output = B> + DivInner<TypedInteger<Hx0, Hx1, Hx2, Hx3, Hx4, Hx5, Hx6, Hx7>, TypedInteger<_0, _0, _0, _0, _0, _0, _0, _0>, TypedInteger<_0, _0, _0, _0, _0, _0, _0, _8>, Hout = H1, Qout = Q1> + DivInner<H1, Q1, TypedInteger<_0, _0, _0, _0, _0, _0, _0, _4>, Hout = H2, Qout = Q2> + DivInner<H2, Q2, TypedInteger<_0, _0, _0, _0, _0, _0, _0, _2>, Hout = H3, Qout = Q3> + DivInner<H3, Q3, TypedInteger<_0, _0, _0, _0, _0, _0, _0, _1>, Hout = H4, Qout = Q4> + DivInner<H4, Q4, TypedInteger<_0, _0, _0, _0, _0, _0, _8, _0>, Hout = H5, Qout = Q5> + DivInner<H5, Q5, TypedInteger<_0, _0, _0, _0, _0, _0, _4, _0>, Hout = H6, Qout = Q6> + DivInner<H6, Q6, TypedInteger<_0, _0, _0, _0, _0, _0, _2, _0>, Hout = H7, Qout = Q7> + DivInner<H7, Q7, TypedInteger<_0, _0, _0, _0, _0, _0, _1, _0>, Hout = H8, Qout = Q8> + DivInner<H8, Q8, TypedInteger<_0, _0, _0, _0, _0, _8, _0, _0>, Hout = H9, Qout = Q9> + DivInner<H9, Q9, TypedInteger<_0, _0, _0, _0, _0, _4, _0, _0>, Hout = H10, Qout = Q10> + DivInner<H10, Q10, TypedInteger<_0, _0, _0, _0, _0, _2, _0, _0>, Hout = H11, Qout = Q11> + DivInner<H11, Q11, TypedInteger<_0, _0, _0, _0, _0, _1, _0, _0>, Hout = H12, Qout = Q12> + DivInner<H12, Q12, TypedInteger<_0, _0, _0, _0, _8, _0, _0, _0>, Hout = H13, Qout = Q13> + DivInner<H13, Q13, TypedInteger<_0, _0, _0, _0, _4, _0, _0, _0>, Hout = H14, Qout = Q14> + DivInner<H14, Q14, TypedInteger<_0, _0, _0, _0, _2, _0, _0, _0>, Hout = H15, Qout = Q15> + DivInner<H15, Q15, TypedInteger<_0, _0, _0, _0, _1, _0, _0, _0>, Hout = H16, Qout = Q16> + DivInner<H16, Q16, TypedInteger<_0, _0, _0, _8, _0, _0, _0, _0>, Hout = H17, Qout = Q17> + DivInner<H17, Q17, TypedInteger<_0, _0, _0, _4, _0, _0, _0, _0>, Hout = H18, Qout = Q18> + DivInner<H18, Q18, TypedInteger<_0, _0, _0, _2, _0, _0, _0, _0>, Hout = H19, Qout = Q19> + DivInner<H19, Q19, TypedInteger<_0, _0, _0, _1, _0, _0, _0, _0>, Hout = H20, Qout = Q20> + DivInner<H20, Q20, TypedInteger<_0, _0, _8, _0, _0, _0, _0, _0>, Hout = H21, Qout = Q21> + DivInner<H21, Q21, TypedInteger<_0, _0, _4, _0, _0, _0, _0, _0>, Hout = H22, Qout = Q22> + DivInner<H22, Q22, TypedInteger<_0, _0, _2, _0, _0, _0, _0, _0>, Hout = H23, Qout = Q23> + DivInner<H23, Q23, TypedInteger<_0, _0, _1, _0, _0, _0, _0, _0>, Hout = H24, Qout = Q24> + DivInner<H24, Q24, TypedInteger<_0, _8, _0, _0, _0, _0, _0, _0>, Hout = H25, Qout = Q25> + DivInner<H25, Q25, TypedInteger<_0, _4, _0, _0, _0, _0, _0, _0>, Hout = H26, Qout = Q26> + DivInner<H26, Q26, TypedInteger<_0, _2, _0, _0, _0, _0, _0, _0>, Hout = H27, Qout = Q27> + DivInner<H27, Q27, TypedInteger<_0, _1, _0, _0, _0, _0, _0, _0>, Hout = H28, Qout = Q28> + DivInner<H28, Q28, TypedInteger<_8, _0, _0, _0, _0, _0, _0, _0>, Hout = H29, Qout = Q29> + DivInner<H29, Q29, TypedInteger<_4, _0, _0, _0, _0, _0, _0, _0>, Hout = H30, Qout = Q30> + DivInner<H30, Q30, TypedInteger<_2, _0, _0, _0, _0, _0, _0, _0>, Hout = H31, Qout = Q31> + DivInner<H31, Q31, TypedInteger<_1, _0, _0, _0, _0, _0, _0, _0>, Hout = H32, Qout = Q32> + TypedEqual<TypedInteger<_1, _0, _0, _0, _0, _0, _0, _0>, Output = Eq1> + IsInteger,
B: AssertTrue + Binary,
Eq1: If<TypedInteger<_0, _0, _0, _0, _0, _0, _0, _0>, H32, Output = H33> + If<TypedInteger<Hx0, Hx1, Hx2, Hx3, Hx4, Hx5, Hx6, Hx7>, Q32, Output = Q33> + Binary,
TypedInteger<Hx0, Hx1, Hx2, Hx3, Hx4, Hx5, Hx6, Hx7>: TypedEqual<TypedInteger<_0, _0, _0, _0, _0, _0, _0, _0>, Output = Eq0>,
Eq0: If<TypedInteger<_0, _0, _0, _0, _0, _0, _0, _0>, H33, Output = HResult> + If<TypedInteger<_0, _0, _0, _0, _0, _0, _0, _0>, Q33, Output = QResult> + Binary,
impl<K, Hx0: Hex, Hx1: Hex, Hx2: Hex, Hx3: Hex, Hx4: Hex, Hx5: Hex, Hx6: Hex, Hx7: Hex, H1: IsInteger, Q1: IsInteger, H2: IsInteger, Q2: IsInteger, H3: IsInteger, Q3: IsInteger, H4: IsInteger, Q4: IsInteger, H5: IsInteger, Q5: IsInteger, H6: IsInteger, Q6: IsInteger, H7: IsInteger, Q7: IsInteger, H8: IsInteger, Q8: IsInteger, H9: IsInteger, Q9: IsInteger, H10: IsInteger, Q10: IsInteger, H11: IsInteger, Q11: IsInteger, H12: IsInteger, Q12: IsInteger, H13: IsInteger, Q13: IsInteger, H14: IsInteger, Q14: IsInteger, H15: IsInteger, Q15: IsInteger, H16: IsInteger, Q16: IsInteger, H17: IsInteger, Q17: IsInteger, H18: IsInteger, Q18: IsInteger, H19: IsInteger, Q19: IsInteger, H20: IsInteger, Q20: IsInteger, H21: IsInteger, Q21: IsInteger, H22: IsInteger, Q22: IsInteger, H23: IsInteger, Q23: IsInteger, H24: IsInteger, Q24: IsInteger, H25: IsInteger, Q25: IsInteger, H26: IsInteger, Q26: IsInteger, H27: IsInteger, Q27: IsInteger, H28: IsInteger, Q28: IsInteger, H29: IsInteger, Q29: IsInteger, H30: IsInteger, Q30: IsInteger, H31: IsInteger, Q31: IsInteger, H32: IsInteger, Q32: IsInteger, B, Eq1, Eq0, H33: IsInteger, Q33: IsInteger, HResult: IsInteger, QResult: IsInteger> TypedDiv<K> for TypedInteger<Hx0, Hx1, Hx2, Hx3, Hx4, Hx5, Hx6, Hx7>where K: TypedGreaterThan<TypedInteger<_0, _0, _0, _0, _0, _0, _0, _0>, Output = B> + DivInner<TypedInteger<Hx0, Hx1, Hx2, Hx3, Hx4, Hx5, Hx6, Hx7>, TypedInteger<_0, _0, _0, _0, _0, _0, _0, _0>, TypedInteger<_0, _0, _0, _0, _0, _0, _0, _8>, Hout = H1, Qout = Q1> + DivInner<H1, Q1, TypedInteger<_0, _0, _0, _0, _0, _0, _0, _4>, Hout = H2, Qout = Q2> + DivInner<H2, Q2, TypedInteger<_0, _0, _0, _0, _0, _0, _0, _2>, Hout = H3, Qout = Q3> + DivInner<H3, Q3, TypedInteger<_0, _0, _0, _0, _0, _0, _0, _1>, Hout = H4, Qout = Q4> + DivInner<H4, Q4, TypedInteger<_0, _0, _0, _0, _0, _0, _8, _0>, Hout = H5, Qout = Q5> + DivInner<H5, Q5, TypedInteger<_0, _0, _0, _0, _0, _0, _4, _0>, Hout = H6, Qout = Q6> + DivInner<H6, Q6, TypedInteger<_0, _0, _0, _0, _0, _0, _2, _0>, Hout = H7, Qout = Q7> + DivInner<H7, Q7, TypedInteger<_0, _0, _0, _0, _0, _0, _1, _0>, Hout = H8, Qout = Q8> + DivInner<H8, Q8, TypedInteger<_0, _0, _0, _0, _0, _8, _0, _0>, Hout = H9, Qout = Q9> + DivInner<H9, Q9, TypedInteger<_0, _0, _0, _0, _0, _4, _0, _0>, Hout = H10, Qout = Q10> + DivInner<H10, Q10, TypedInteger<_0, _0, _0, _0, _0, _2, _0, _0>, Hout = H11, Qout = Q11> + DivInner<H11, Q11, TypedInteger<_0, _0, _0, _0, _0, _1, _0, _0>, Hout = H12, Qout = Q12> + DivInner<H12, Q12, TypedInteger<_0, _0, _0, _0, _8, _0, _0, _0>, Hout = H13, Qout = Q13> + DivInner<H13, Q13, TypedInteger<_0, _0, _0, _0, _4, _0, _0, _0>, Hout = H14, Qout = Q14> + DivInner<H14, Q14, TypedInteger<_0, _0, _0, _0, _2, _0, _0, _0>, Hout = H15, Qout = Q15> + DivInner<H15, Q15, TypedInteger<_0, _0, _0, _0, _1, _0, _0, _0>, Hout = H16, Qout = Q16> + DivInner<H16, Q16, TypedInteger<_0, _0, _0, _8, _0, _0, _0, _0>, Hout = H17, Qout = Q17> + DivInner<H17, Q17, TypedInteger<_0, _0, _0, _4, _0, _0, _0, _0>, Hout = H18, Qout = Q18> + DivInner<H18, Q18, TypedInteger<_0, _0, _0, _2, _0, _0, _0, _0>, Hout = H19, Qout = Q19> + DivInner<H19, Q19, TypedInteger<_0, _0, _0, _1, _0, _0, _0, _0>, Hout = H20, Qout = Q20> + DivInner<H20, Q20, TypedInteger<_0, _0, _8, _0, _0, _0, _0, _0>, Hout = H21, Qout = Q21> + DivInner<H21, Q21, TypedInteger<_0, _0, _4, _0, _0, _0, _0, _0>, Hout = H22, Qout = Q22> + DivInner<H22, Q22, TypedInteger<_0, _0, _2, _0, _0, _0, _0, _0>, Hout = H23, Qout = Q23> + DivInner<H23, Q23, TypedInteger<_0, _0, _1, _0, _0, _0, _0, _0>, Hout = H24, Qout = Q24> + DivInner<H24, Q24, TypedInteger<_0, _8, _0, _0, _0, _0, _0, _0>, Hout = H25, Qout = Q25> + DivInner<H25, Q25, TypedInteger<_0, _4, _0, _0, _0, _0, _0, _0>, Hout = H26, Qout = Q26> + DivInner<H26, Q26, TypedInteger<_0, _2, _0, _0, _0, _0, _0, _0>, Hout = H27, Qout = Q27> + DivInner<H27, Q27, TypedInteger<_0, _1, _0, _0, _0, _0, _0, _0>, Hout = H28, Qout = Q28> + DivInner<H28, Q28, TypedInteger<_8, _0, _0, _0, _0, _0, _0, _0>, Hout = H29, Qout = Q29> + DivInner<H29, Q29, TypedInteger<_4, _0, _0, _0, _0, _0, _0, _0>, Hout = H30, Qout = Q30> + DivInner<H30, Q30, TypedInteger<_2, _0, _0, _0, _0, _0, _0, _0>, Hout = H31, Qout = Q31> + DivInner<H31, Q31, TypedInteger<_1, _0, _0, _0, _0, _0, _0, _0>, Hout = H32, Qout = Q32> + TypedEqual<TypedInteger<_1, _0, _0, _0, _0, _0, _0, _0>, Output = Eq1> + IsInteger, B: AssertTrue + Binary, Eq1: If<TypedInteger<_0, _0, _0, _0, _0, _0, _0, _0>, H32, Output = H33> + If<TypedInteger<Hx0, Hx1, Hx2, Hx3, Hx4, Hx5, Hx6, Hx7>, Q32, Output = Q33> + Binary, TypedInteger<Hx0, Hx1, Hx2, Hx3, Hx4, Hx5, Hx6, Hx7>: TypedEqual<TypedInteger<_0, _0, _0, _0, _0, _0, _0, _0>, Output = Eq0>, Eq0: If<TypedInteger<_0, _0, _0, _0, _0, _0, _0, _0>, H33, Output = HResult> + If<TypedInteger<_0, _0, _0, _0, _0, _0, _0, _0>, Q33, Output = QResult> + Binary,
source§impl<N: IsInteger, H0, H1, H2, H3, H4, H5, H6, H7, B0, B1: Binary, B2: Binary, B3: Binary, B4: Binary, B5: Binary, B6: Binary, B7: Binary, R: Binary> TypedEqual<N> for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where
H0: HexEqual<N::Hex0, Output = B0> + Hex,
H1: HexEqual<N::Hex1, Output = B1> + Hex,
H2: HexEqual<N::Hex2, Output = B2> + Hex,
H3: HexEqual<N::Hex3, Output = B3> + Hex,
H4: HexEqual<N::Hex4, Output = B4> + Hex,
H5: HexEqual<N::Hex5, Output = B5> + Hex,
H6: HexEqual<N::Hex6, Output = B6> + Hex,
H7: HexEqual<N::Hex7, Output = B7> + Hex,
B0: BinMultiAnd<B1, B2, B3, B4, B5, B6, B7, Output = R> + Binary,
impl<N: IsInteger, H0, H1, H2, H3, H4, H5, H6, H7, B0, B1: Binary, B2: Binary, B3: Binary, B4: Binary, B5: Binary, B6: Binary, B7: Binary, R: Binary> TypedEqual<N> for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where H0: HexEqual<N::Hex0, Output = B0> + Hex, H1: HexEqual<N::Hex1, Output = B1> + Hex, H2: HexEqual<N::Hex2, Output = B2> + Hex, H3: HexEqual<N::Hex3, Output = B3> + Hex, H4: HexEqual<N::Hex4, Output = B4> + Hex, H5: HexEqual<N::Hex5, Output = B5> + Hex, H6: HexEqual<N::Hex6, Output = B6> + Hex, H7: HexEqual<N::Hex7, Output = B7> + Hex, B0: BinMultiAnd<B1, B2, B3, B4, B5, B6, B7, Output = R> + Binary,
source§impl<N: IsInteger, H0: Hex, H1: Hex, H2: Hex, H3: Hex, H4: Hex, H5: Hex, H6: Hex, H7: Hex, B0, B1: Binary> TypedGeq<N> for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where
TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>: TypedLessThan<N, Output = B0>,
B0: BinNot<Output = B1> + Binary,
impl<N: IsInteger, H0: Hex, H1: Hex, H2: Hex, H3: Hex, H4: Hex, H5: Hex, H6: Hex, H7: Hex, B0, B1: Binary> TypedGeq<N> for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>: TypedLessThan<N, Output = B0>, B0: BinNot<Output = B1> + Binary,
source§impl<N: IsInteger, H0: Hex, H1: Hex, H2: Hex, H3: Hex, H4: Hex, H5: Hex, H6: Hex, H7: Hex, B0, B1: Binary, B2: Binary> TypedGreaterThan<N> for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where
TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>: TypedLessThan<N, Output = B0> + TypedEqual<N, Output = B1>,
B0: BinNor<B1, Output = B2> + Binary,
impl<N: IsInteger, H0: Hex, H1: Hex, H2: Hex, H3: Hex, H4: Hex, H5: Hex, H6: Hex, H7: Hex, B0, B1: Binary, B2: Binary> TypedGreaterThan<N> for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>: TypedLessThan<N, Output = B0> + TypedEqual<N, Output = B1>, B0: BinNor<B1, Output = B2> + Binary,
source§impl<N: IsInteger, H0: Hex, H1: Hex, H2: Hex, H3: Hex, H4: Hex, H5: Hex, H6: Hex, H7: Hex, B0, B1: Binary, B2: Binary> TypedLeq<N> for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where
TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>: TypedLessThan<N, Output = B0> + TypedEqual<N, Output = B1>,
B0: BinOr<B1, Output = B2> + Binary,
impl<N: IsInteger, H0: Hex, H1: Hex, H2: Hex, H3: Hex, H4: Hex, H5: Hex, H6: Hex, H7: Hex, B0, B1: Binary, B2: Binary> TypedLeq<N> for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>: TypedLessThan<N, Output = B0> + TypedEqual<N, Output = B1>, B0: BinOr<B1, Output = B2> + Binary,
source§impl<N, H0, R0: Hex, C0: Hex, X0: Hex, H1, R1: Hex, C1: Hex, X1: Hex, H2, R2: Hex, C2: Hex, X2: Hex, H3, R3: Hex, C3: Hex, X3: Hex, H4, R4: Hex, C4: Hex, X4: Hex, H5, R5: Hex, C5: Hex, X5: Hex, H6, R6: Hex, C6: Hex, X6: Hex, H7, R7: Hex, C7, X7: Hex, R_, Eq, NotEq: Binary, R: Binary> TypedLessThan<N> for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where
N: TypedEqual<TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>, Output = Eq> + IsInteger,
Eq: BinNot<Output = NotEq> + Binary,
N::Hex0: HexNot<Output = X0>,
N::Hex1: HexNot<Output = X1>,
N::Hex2: HexNot<Output = X2>,
N::Hex3: HexNot<Output = X3>,
N::Hex4: HexNot<Output = X4>,
N::Hex5: HexNot<Output = X5>,
N::Hex6: HexNot<Output = X6>,
N::Hex7: HexNot<Output = X7>,
H0: HexAdd3<X0, _1, Output = R0, Carry = C0> + Hex,
H1: HexAdd3<X1, C0, Output = R1, Carry = C1> + Hex,
H2: HexAdd3<X2, C1, Output = R2, Carry = C2> + Hex,
H3: HexAdd3<X3, C2, Output = R3, Carry = C3> + Hex,
H4: HexAdd3<X4, C3, Output = R4, Carry = C4> + Hex,
H5: HexAdd3<X5, C4, Output = R5, Carry = C5> + Hex,
H6: HexAdd3<X6, C5, Output = R6, Carry = C6> + Hex,
H7: HexAdd3<X7, C6, Output = R7, Carry = C7> + Hex,
C7: HexEqual<_0, Output = R_> + Hex,
R_: BinAnd<NotEq, Output = R> + Binary,
impl<N, H0, R0: Hex, C0: Hex, X0: Hex, H1, R1: Hex, C1: Hex, X1: Hex, H2, R2: Hex, C2: Hex, X2: Hex, H3, R3: Hex, C3: Hex, X3: Hex, H4, R4: Hex, C4: Hex, X4: Hex, H5, R5: Hex, C5: Hex, X5: Hex, H6, R6: Hex, C6: Hex, X6: Hex, H7, R7: Hex, C7, X7: Hex, R_, Eq, NotEq: Binary, R: Binary> TypedLessThan<N> for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where N: TypedEqual<TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>, Output = Eq> + IsInteger, Eq: BinNot<Output = NotEq> + Binary, N::Hex0: HexNot<Output = X0>, N::Hex1: HexNot<Output = X1>, N::Hex2: HexNot<Output = X2>, N::Hex3: HexNot<Output = X3>, N::Hex4: HexNot<Output = X4>, N::Hex5: HexNot<Output = X5>, N::Hex6: HexNot<Output = X6>, N::Hex7: HexNot<Output = X7>, H0: HexAdd3<X0, _1, Output = R0, Carry = C0> + Hex, H1: HexAdd3<X1, C0, Output = R1, Carry = C1> + Hex, H2: HexAdd3<X2, C1, Output = R2, Carry = C2> + Hex, H3: HexAdd3<X3, C2, Output = R3, Carry = C3> + Hex, H4: HexAdd3<X4, C3, Output = R4, Carry = C4> + Hex, H5: HexAdd3<X5, C4, Output = R5, Carry = C5> + Hex, H6: HexAdd3<X6, C5, Output = R6, Carry = C6> + Hex, H7: HexAdd3<X7, C6, Output = R7, Carry = C7> + Hex, C7: HexEqual<_0, Output = R_> + Hex, R_: BinAnd<NotEq, Output = R> + Binary,
source§impl<N: IsInteger, H0: Hex, H1: Hex, H2: Hex, H3: Hex, H4: Hex, H5: Hex, H6: Hex, H7: Hex, N0: IsInteger, N1: IsInteger, N2: IsInteger, N3: IsInteger, R4: Hex, R5: Hex, R6: Hex, R7: Hex, R8: Hex, R9: Hex, R10: Hex, R11: Hex, R12: Hex, C4: Hex, C5: Hex, C6: Hex, C7: Hex, C8: Hex, C9: Hex, C10: Hex, C11: Hex, C_> TypedMul<N> for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where
TypedInteger<N::Hex0, N::Hex1, N::Hex2, N::Hex3, H0, H1, H2, H3>: FoldMul<Output = N0>,
TypedInteger<N::Hex0, N::Hex1, N::Hex2, N::Hex3, H4, H5, H6, H7>: FoldMul<Output = N1>,
TypedInteger<N::Hex4, N::Hex5, N::Hex6, N::Hex7, H0, H1, H2, H3>: FoldMul<Output = N2>,
TypedInteger<N::Hex4, N::Hex5, N::Hex6, N::Hex7, H4, H5, H6, H7>: FoldMul<Output = N3>,
N0::Hex4: HexAdd3<N1::Hex0, N2::Hex0, Output = R4, Carry = C4>,
N0::Hex5: HexAdd4<N1::Hex1, N2::Hex1, C4, Output = R5, Carry = C5>,
N0::Hex6: HexAdd4<N1::Hex2, N2::Hex2, C5, Output = R6, Carry = C6>,
N0::Hex7: HexAdd4<N1::Hex3, N2::Hex3, C6, Output = R7, Carry = C7>,
N3::Hex0: HexAdd4<N1::Hex4, N2::Hex4, C7, Output = R8, Carry = C8>,
N3::Hex1: HexAdd4<N1::Hex5, N2::Hex5, C8, Output = R9, Carry = C9>,
N3::Hex2: HexAdd4<N1::Hex6, N2::Hex6, C9, Output = R10, Carry = C10>,
N3::Hex3: HexAdd4<N1::Hex7, N2::Hex7, C10, Output = R11, Carry = C11>,
N3::Hex4: HexAdd<C11, Output = R12, Carry = C_>,
C_: HexAssertEqual<_0> + Hex,
impl<N: IsInteger, H0: Hex, H1: Hex, H2: Hex, H3: Hex, H4: Hex, H5: Hex, H6: Hex, H7: Hex, N0: IsInteger, N1: IsInteger, N2: IsInteger, N3: IsInteger, R4: Hex, R5: Hex, R6: Hex, R7: Hex, R8: Hex, R9: Hex, R10: Hex, R11: Hex, R12: Hex, C4: Hex, C5: Hex, C6: Hex, C7: Hex, C8: Hex, C9: Hex, C10: Hex, C11: Hex, C_> TypedMul<N> for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where TypedInteger<N::Hex0, N::Hex1, N::Hex2, N::Hex3, H0, H1, H2, H3>: FoldMul<Output = N0>, TypedInteger<N::Hex0, N::Hex1, N::Hex2, N::Hex3, H4, H5, H6, H7>: FoldMul<Output = N1>, TypedInteger<N::Hex4, N::Hex5, N::Hex6, N::Hex7, H0, H1, H2, H3>: FoldMul<Output = N2>, TypedInteger<N::Hex4, N::Hex5, N::Hex6, N::Hex7, H4, H5, H6, H7>: FoldMul<Output = N3>, N0::Hex4: HexAdd3<N1::Hex0, N2::Hex0, Output = R4, Carry = C4>, N0::Hex5: HexAdd4<N1::Hex1, N2::Hex1, C4, Output = R5, Carry = C5>, N0::Hex6: HexAdd4<N1::Hex2, N2::Hex2, C5, Output = R6, Carry = C6>, N0::Hex7: HexAdd4<N1::Hex3, N2::Hex3, C6, Output = R7, Carry = C7>, N3::Hex0: HexAdd4<N1::Hex4, N2::Hex4, C7, Output = R8, Carry = C8>, N3::Hex1: HexAdd4<N1::Hex5, N2::Hex5, C8, Output = R9, Carry = C9>, N3::Hex2: HexAdd4<N1::Hex6, N2::Hex6, C9, Output = R10, Carry = C10>, N3::Hex3: HexAdd4<N1::Hex7, N2::Hex7, C10, Output = R11, Carry = C11>, N3::Hex4: HexAdd<C11, Output = R12, Carry = C_>, C_: HexAssertEqual<_0> + Hex,
source§impl<N: IsInteger, H0, R0: Hex, C0: Hex, X0: Hex, H1, R1: Hex, C1: Hex, X1: Hex, H2, R2: Hex, C2: Hex, X2: Hex, H3, R3: Hex, C3: Hex, X3: Hex, H4, R4: Hex, C4: Hex, X4: Hex, H5, R5: Hex, C5: Hex, X5: Hex, H6, R6: Hex, C6: Hex, X6: Hex, H7, R7: Hex, C7, X7: Hex> TypedSub<N> for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where
N::Hex0: HexNot<Output = X0>,
N::Hex1: HexNot<Output = X1>,
N::Hex2: HexNot<Output = X2>,
N::Hex3: HexNot<Output = X3>,
N::Hex4: HexNot<Output = X4>,
N::Hex5: HexNot<Output = X5>,
N::Hex6: HexNot<Output = X6>,
N::Hex7: HexNot<Output = X7>,
H0: HexAdd3<X0, _1, Output = R0, Carry = C0> + Hex,
H1: HexAdd3<X1, C0, Output = R1, Carry = C1> + Hex,
H2: HexAdd3<X2, C1, Output = R2, Carry = C2> + Hex,
H3: HexAdd3<X3, C2, Output = R3, Carry = C3> + Hex,
H4: HexAdd3<X4, C3, Output = R4, Carry = C4> + Hex,
H5: HexAdd3<X5, C4, Output = R5, Carry = C5> + Hex,
H6: HexAdd3<X6, C5, Output = R6, Carry = C6> + Hex,
H7: HexAdd3<X7, C6, Output = R7, Carry = C7> + Hex,
C7: HexAssertEqual<_1> + Hex,
impl<N: IsInteger, H0, R0: Hex, C0: Hex, X0: Hex, H1, R1: Hex, C1: Hex, X1: Hex, H2, R2: Hex, C2: Hex, X2: Hex, H3, R3: Hex, C3: Hex, X3: Hex, H4, R4: Hex, C4: Hex, X4: Hex, H5, R5: Hex, C5: Hex, X5: Hex, H6, R6: Hex, C6: Hex, X6: Hex, H7, R7: Hex, C7, X7: Hex> TypedSub<N> for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where N::Hex0: HexNot<Output = X0>, N::Hex1: HexNot<Output = X1>, N::Hex2: HexNot<Output = X2>, N::Hex3: HexNot<Output = X3>, N::Hex4: HexNot<Output = X4>, N::Hex5: HexNot<Output = X5>, N::Hex6: HexNot<Output = X6>, N::Hex7: HexNot<Output = X7>, H0: HexAdd3<X0, _1, Output = R0, Carry = C0> + Hex, H1: HexAdd3<X1, C0, Output = R1, Carry = C1> + Hex, H2: HexAdd3<X2, C1, Output = R2, Carry = C2> + Hex, H3: HexAdd3<X3, C2, Output = R3, Carry = C3> + Hex, H4: HexAdd3<X4, C3, Output = R4, Carry = C4> + Hex, H5: HexAdd3<X5, C4, Output = R5, Carry = C5> + Hex, H6: HexAdd3<X6, C5, Output = R6, Carry = C6> + Hex, H7: HexAdd3<X7, C6, Output = R7, Carry = C7> + Hex, C7: HexAssertEqual<_1> + Hex,
type Output = TypedInteger<R0, R1, R2, R3, R4, R5, R6, R7>
impl<H0: Copy + Hex, H1: Copy + Hex, H2: Copy + Hex, H3: Copy + Hex, H4: Copy + Hex, H5: Copy + Hex, H6: Copy + Hex, H7: Copy + Hex> Copy for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>
impl<N: IsInteger> TypedAssertEqual<N> for TypedInteger<N::Hex0, N::Hex1, N::Hex2, N::Hex3, N::Hex4, N::Hex5, N::Hex6, N::Hex7>
Auto Trait Implementations§
impl<H0, H1, H2, H3, H4, H5, H6, H7> RefUnwindSafe for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where H0: RefUnwindSafe, H1: RefUnwindSafe, H2: RefUnwindSafe, H3: RefUnwindSafe, H4: RefUnwindSafe, H5: RefUnwindSafe, H6: RefUnwindSafe, H7: RefUnwindSafe,
impl<H0, H1, H2, H3, H4, H5, H6, H7> Send for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where H0: Send, H1: Send, H2: Send, H3: Send, H4: Send, H5: Send, H6: Send, H7: Send,
impl<H0, H1, H2, H3, H4, H5, H6, H7> Sync for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where H0: Sync, H1: Sync, H2: Sync, H3: Sync, H4: Sync, H5: Sync, H6: Sync, H7: Sync,
impl<H0, H1, H2, H3, H4, H5, H6, H7> Unpin for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where H0: Unpin, H1: Unpin, H2: Unpin, H3: Unpin, H4: Unpin, H5: Unpin, H6: Unpin, H7: Unpin,
impl<H0, H1, H2, H3, H4, H5, H6, H7> UnwindSafe for TypedInteger<H0, H1, H2, H3, H4, H5, H6, H7>where H0: UnwindSafe, H1: UnwindSafe, H2: UnwindSafe, H3: UnwindSafe, H4: UnwindSafe, H5: UnwindSafe, H6: UnwindSafe, H7: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more