radiate_utils/datatype/
mod.rs1mod arithmetic;
2mod compare;
3pub mod dtype;
4mod from;
5#[allow(dead_code)]
6mod list;
7mod scalar;
8pub mod value;
9
10use std::time::Duration;
11
12pub use arithmetic::pow_anyvalue;
13pub use dtype::*;
14pub use scalar::Scalar;
15pub use value::{AnyValue, dedup_slice};
16
17macro_rules! impl_dtype {
18 ($t:ty, $dtype:expr) => {
19 impl DType for $t {
20 fn dtype() -> DataType {
21 $dtype
22 }
23 }
24 };
25}
26
27impl_dtype!(u8, DataType::UInt8);
28impl_dtype!(u16, DataType::UInt16);
29impl_dtype!(u32, DataType::UInt32);
30impl_dtype!(u64, DataType::UInt64);
31impl_dtype!(u128, DataType::UInt128);
32
33impl_dtype!(i8, DataType::Int8);
34impl_dtype!(i16, DataType::Int16);
35impl_dtype!(i32, DataType::Int32);
36impl_dtype!(i64, DataType::Int64);
37impl_dtype!(i128, DataType::Int128);
38
39impl_dtype!(f32, DataType::Float32);
40impl_dtype!(f64, DataType::Float64);
41
42impl_dtype!(usize, DataType::Usize);
43
44impl_dtype!(Duration, DataType::Duration);
45
46impl_dtype!(bool, DataType::Boolean);
47
48impl_dtype!(char, DataType::Char);
49impl_dtype!(String, DataType::String);