fixed/types/
extra.rs

1// Copyright © 2018–2025 Trevor Spiteri
2
3// This library is free software: you can redistribute it and/or
4// modify it under the terms of either
5//
6//   * the Apache License, Version 2.0 or
7//   * the MIT License
8//
9// at your option.
10//
11// You should have recieved copies of the Apache License and the MIT
12// License along with the library. If not, see
13// <https://www.apache.org/licenses/LICENSE-2.0> and
14// <https://opensource.org/licenses/MIT>.
15
16/*!
17Extra types that do not need to be handled directly.
18
19These types are mostly reexports from the [*typenum* crate].
20
21[*typenum* crate]: https://crates.io/crates/typenum
22*/
23
24pub use typenum::{
25    Diff, IsLessOrEqual, Sum, True, U0, U1, U2, U3, U4, U5, U6, U7, U8, U9, U10, U11, U12, U13,
26    U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24, U25, U26, U27, U28, U29, U30, U31, U32,
27    U33, U34, U35, U36, U37, U38, U39, U40, U41, U42, U43, U44, U45, U46, U47, U48, U49, U50, U51,
28    U52, U53, U54, U55, U56, U57, U58, U59, U60, U61, U62, U63, U64, U65, U66, U67, U68, U69, U70,
29    U71, U72, U73, U74, U75, U76, U77, U78, U79, U80, U81, U82, U83, U84, U85, U86, U87, U88, U89,
30    U90, U91, U92, U93, U94, U95, U96, U97, U98, U99, U100, U101, U102, U103, U104, U105, U106,
31    U107, U108, U109, U110, U111, U112, U113, U114, U115, U116, U117, U118, U119, U120, U121, U122,
32    U123, U124, U125, U126, U127, U128, Unsigned,
33};
34
35/// Implemented for all [`Unsigned`] integers ≤ 8.
36pub trait LeEqU8: Unsigned + IsLessOrEqual<U8, Output = True> {}
37impl<T: Unsigned + IsLessOrEqual<U8, Output = True>> LeEqU8 for T {}
38/// Implemented for all [`Unsigned`] integers ≤ 16.
39pub trait LeEqU16: Unsigned + IsLessOrEqual<U16, Output = True> {}
40impl<T: Unsigned + IsLessOrEqual<U16, Output = True>> LeEqU16 for T {}
41/// Implemented for all [`Unsigned`] integers ≤ 32.
42pub trait LeEqU32: Unsigned + IsLessOrEqual<U32, Output = True> {}
43impl<T: Unsigned + IsLessOrEqual<U32, Output = True>> LeEqU32 for T {}
44/// Implemented for all [`Unsigned`] integers ≤ 64.
45pub trait LeEqU64: Unsigned + IsLessOrEqual<U64, Output = True> {}
46impl<T: Unsigned + IsLessOrEqual<U64, Output = True>> LeEqU64 for T {}
47/// Implemented for all [`Unsigned`] integers ≤ 128.
48pub trait LeEqU128: Unsigned + IsLessOrEqual<U128, Output = True> {}
49impl<T: Unsigned + IsLessOrEqual<U128, Output = True>> LeEqU128 for T {}