radiate-utils 1.3.0

A Rust library for genetic algorithms and artificial evolution.
Documentation
mod arithmetic;
mod compare;
pub mod dtype;
mod scalar;
pub mod value;

use std::time::Duration;

pub use arithmetic::pow_anyvalue;
pub use dtype::*;
pub use scalar::Scalar;
pub use value::{AnyValue, dedup_slice};

macro_rules! impl_dtype {
    ($t:ty, $dtype:expr) => {
        impl DType for $t {
            fn dtype(&self) -> DataType {
                $dtype
            }
        }
    };
}

impl_dtype!(u8, DataType::UInt8);
impl_dtype!(u16, DataType::UInt16);
impl_dtype!(u32, DataType::UInt32);
impl_dtype!(u64, DataType::UInt64);
impl_dtype!(u128, DataType::UInt128);

impl_dtype!(i8, DataType::Int8);
impl_dtype!(i16, DataType::Int16);
impl_dtype!(i32, DataType::Int32);
impl_dtype!(i64, DataType::Int64);
impl_dtype!(i128, DataType::Int128);

impl_dtype!(f32, DataType::Float32);
impl_dtype!(f64, DataType::Float64);

impl_dtype!(usize, DataType::Usize);

impl_dtype!(Duration, DataType::Duration);

impl_dtype!(bool, DataType::Boolean);

impl_dtype!(char, DataType::Char);
impl_dtype!(String, DataType::String);