velr-types 0.1.0

Shared public value types for Velr drivers
Documentation
#[derive(Debug, Clone, PartialEq)]
pub enum StorageValue {
    Null,
    Integer(i64),
    Real(f64),
    Text(String),
    Blob(Vec<u8>),
}

#[derive(Debug, Copy, Clone, PartialEq)]
pub enum StorageValueRef<'a> {
    Null,
    Integer(i64),
    Real(f64),
    Text(&'a str),
    Blob(&'a [u8]),
}

impl StorageValue {
    pub fn as_ref(&self) -> StorageValueRef<'_> {
        match self {
            Self::Null => StorageValueRef::Null,
            Self::Integer(v) => StorageValueRef::Integer(*v),
            Self::Real(v) => StorageValueRef::Real(*v),
            Self::Text(v) => StorageValueRef::Text(v),
            Self::Blob(v) => StorageValueRef::Blob(v),
        }
    }
}