Module typenum::int
[−]
[src]
Type-level signed integers.
Type operators implemented:
From core::ops
: Add
, Sub
, Mul
, Div
, and Rem
.
From typenum
: Same
, Cmp
, and Pow
.
Rather than directly using the structs defined in this module, it is recommended that you import and use the relevant aliases from the consts module.
Note that operators that work on the underlying structure of the number are intentionally not implemented. This is because this implementation of signed integers does not use twos-complement, and implementing them would require making arbitrary choices, causing the results of such operators to be difficult to reason about.
Example
use std::ops::{Add, Sub, Mul, Div, Rem}; use typenum::{Integer, N3, P2}; assert_eq!(<N3 as Add<P2>>::Output::to_i32(), -1); assert_eq!(<N3 as Sub<P2>>::Output::to_i32(), -5); assert_eq!(<N3 as Mul<P2>>::Output::to_i32(), -6); assert_eq!(<N3 as Div<P2>>::Output::to_i32(), -1); assert_eq!(<N3 as Rem<P2>>::Output::to_i32(), -1);
Reexports
pub use marker_traits::Integer; |
Structs
NInt |
Type-level signed integers with negative sign. |
PInt |
Type-level signed integers with positive sign. |
Enums
Z0 |
The type-level signed integer 0. |