Skip to main content

AsDataType

Trait AsDataType 

Source
pub trait AsDataType: 'static {
    const DATA_TYPE: DataType;

    // Provided methods
    fn is_match(data_type: DataType) -> bool { ... }
    fn describe(data_type: DataType) -> Describe { ... }
}
Expand description

Associate a primitive type T with a DataType enum variant.

Required Associated Constants§

Source

const DATA_TYPE: DataType

The DataType this type is associated with.

Provided Methods§

Source

fn is_match(data_type: DataType) -> bool

Return true only if data_type == Self::DATA_TYPE.

Source

fn describe(data_type: DataType) -> Describe

Return a std::fmt::Display compatible struct describing the match with data_type.

use diskann_benchmark_runner::utils::datatype::{DataType, AsDataType};

// Matched data type.
let desc = f32::describe(DataType::Float32);
assert!(desc.is_match());
assert_eq!(desc.to_string(), "successful match");

// Mismatched data type.
let desc = f32::describe(DataType::Float16);
assert!(!desc.is_match());
assert_eq!(desc.to_string(), "expected \"float32\" but found \"float16\"");

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl AsDataType for bool

Source§

const DATA_TYPE: DataType = DataType::Bool

Source§

impl AsDataType for f16

Source§

const DATA_TYPE: DataType = DataType::Float16

Source§

impl AsDataType for f32

Source§

const DATA_TYPE: DataType = DataType::Float32

Source§

impl AsDataType for f64

Source§

const DATA_TYPE: DataType = DataType::Float64

Source§

impl AsDataType for i8

Source§

const DATA_TYPE: DataType = DataType::Int8

Source§

impl AsDataType for i16

Source§

const DATA_TYPE: DataType = DataType::Int16

Source§

impl AsDataType for i32

Source§

const DATA_TYPE: DataType = DataType::Int32

Source§

impl AsDataType for i64

Source§

const DATA_TYPE: DataType = DataType::Int64

Source§

impl AsDataType for u8

Source§

const DATA_TYPE: DataType = DataType::UInt8

Source§

impl AsDataType for u16

Source§

const DATA_TYPE: DataType = DataType::UInt16

Source§

impl AsDataType for u32

Source§

const DATA_TYPE: DataType = DataType::UInt32

Source§

impl AsDataType for u64

Source§

const DATA_TYPE: DataType = DataType::UInt64

Implementors§