nstd_sys/core/
range.rs

1//! A numerical range.
2use crate::{
3    NSTDFloat32, NSTDFloat64, NSTDInt, NSTDInt16, NSTDInt32, NSTDInt64, NSTDInt8, NSTDUInt,
4    NSTDUInt16, NSTDUInt32, NSTDUInt64, NSTDUInt8,
5};
6use nstdapi::nstdapi;
7
8/// Generates the `NSTD*Range*` structs.
9macro_rules! gen_range_struct {
10    (
11        $(#[$meta:meta])*
12        $name: ident, $T: ty
13    ) => {
14        $(#[$meta])*
15        #[nstdapi]
16        #[derive(Clone, Copy)]
17        pub struct $name {
18            /// The lower bound of the range.
19            pub start: $T,
20            /// The higher bound of the range.
21            pub end: $T,
22        }
23    };
24}
25gen_range_struct!(
26    /// A 32-bit floating point numerical range.
27    NSTDRangeF32,
28    NSTDFloat32
29);
30gen_range_struct!(
31    /// A 64-bit floating point numerical range.
32    NSTDRangeF64,
33    NSTDFloat64
34);
35gen_range_struct!(
36    /// An arch-bit signed numerical range.
37    NSTDRange,
38    NSTDInt
39);
40gen_range_struct!(
41    /// An arch-bit unsigned numerical range.
42    NSTDURange,
43    NSTDUInt
44);
45gen_range_struct!(
46    /// An 8-bit signed numerical range.
47    NSTDRangeI8,
48    NSTDInt8
49);
50gen_range_struct!(
51    /// An 8-bit unsigned numerical range.
52    NSTDRangeU8,
53    NSTDUInt8
54);
55gen_range_struct!(
56    /// A 16-bit signed numerical range.
57    NSTDRangeI16,
58    NSTDInt16
59);
60gen_range_struct!(
61    /// A 16-bit unsigned numerical range.
62    NSTDRangeU16,
63    NSTDUInt16
64);
65gen_range_struct!(
66    /// A 32-bit signed numerical range.
67    NSTDRangeI32,
68    NSTDInt32
69);
70gen_range_struct!(
71    /// A 32-bit unsigned numerical range.
72    NSTDRangeU32,
73    NSTDUInt32
74);
75gen_range_struct!(
76    /// A 64-bit signed numerical range.
77    NSTDRangeI64,
78    NSTDInt64
79);
80gen_range_struct!(
81    /// A 64-bit unsigned numerical range.
82    NSTDRangeU64,
83    NSTDUInt64
84);