pcd_rs/
traits.rs

1//! Traits definitions.
2
3use crate::ValueKind;
4
5/// This trait assocaites Rust primitive types to PCD primitive types.
6pub trait Value
7where
8    Self: Copy,
9{
10    const KIND: ValueKind;
11}
12
13impl Value for u8 {
14    const KIND: ValueKind = ValueKind::U8;
15}
16
17impl Value for u16 {
18    const KIND: ValueKind = ValueKind::U16;
19}
20
21impl Value for u32 {
22    const KIND: ValueKind = ValueKind::U32;
23}
24
25impl Value for i8 {
26    const KIND: ValueKind = ValueKind::I8;
27}
28
29impl Value for i16 {
30    const KIND: ValueKind = ValueKind::I16;
31}
32
33impl Value for i32 {
34    const KIND: ValueKind = ValueKind::I32;
35}
36
37impl Value for f32 {
38    const KIND: ValueKind = ValueKind::F32;
39}
40
41impl Value for f64 {
42    const KIND: ValueKind = ValueKind::F64;
43}