extra-safe 0.1.1

A trait hierarchy to help make the SAFE API return errors at compile time.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
error[E0277]: cannot subtract `B1` from `UInt<UTerm, B0>`
 --> src/unit_tests/compilation/consume_head.rs:9:9
  |
9 |         Use<iopat![Absorb<U5>, Squeeze<U0>, Absorb<U1>], Absorb<U6>>,
  |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `UInt<UTerm, B0> - B1`
  |
  = help: the trait `Sub<B1>` is not implemented for `UInt<UTerm, B0>`
  = help: the following other types implement trait `Sub<Rhs>`:
            <UInt<U, B0> as Sub<B1>>
            <UInt<U, B> as Sub<B0>>
            <UInt<UInt<U, B>, B1> as Sub<B1>>
            <UInt<UTerm, B1> as Sub<B1>>
            <UInt<Ul, Bl> as Sub<Ur>>
  = note: required for `UInt<UInt<UTerm, B1>, B0>` to implement `PrivateSub<UInt<UInt<UTerm, B1>, B1>>`
  = note: required for `UInt<UInt<UInt<UTerm, B1>, B0>, B1>` to implement `Sub<UInt<UInt<UInt<UTerm, B1>, B1>, B0>>`
  = note: required for `Cons<Absorb<UInt<UInt<UInt<UTerm, B1>, B0>, B1>>, Cons<Squeeze<UTerm>, Cons<Absorb<UInt<UTerm, B1>>, Nil>>>` to implement `Consume<extra_safe::traits::Absorb<UInt<UInt<UInt<UTerm, B1>, B1>, B0>>>`