Trait scylla::deserialize::DeserializeValue

source ·
pub trait DeserializeValue<'frame, 'metadata>: Sized {
    // Required methods
    fn type_check(typ: &ColumnType<'_>) -> Result<(), TypeCheckError>;
    fn deserialize(
        typ: &'metadata ColumnType<'metadata>,
        v: Option<FrameSlice<'frame>>,
    ) -> Result<Self, DeserializationError>;
}
Expand description

A type that can be deserialized from a column value inside a row that was returned from a query.

For tips on how to write a custom implementation of this trait, see the documentation of the parent module.

The crate also provides a derive macro which allows to automatically implement the trait for a custom type. For more details on what the macro is capable of, see its documentation.

Required Methods§

source

fn type_check(typ: &ColumnType<'_>) -> Result<(), TypeCheckError>

Checks that the column type matches what this type expects.

source

fn deserialize( typ: &'metadata ColumnType<'metadata>, v: Option<FrameSlice<'frame>>, ) -> Result<Self, DeserializationError>

Deserialize a column value from given serialized representation.

This function can assume that the driver called type_check to verify the column’s type. Note that deserialize is not an unsafe function, so it should not use the assumption about type_check being called as an excuse to run unsafe code.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<'a, 'frame, 'metadata> DeserializeValue<'frame, 'metadata> for &'a str
where 'frame: 'a,

source§

fn type_check(typ: &ColumnType<'_>) -> Result<(), TypeCheckError>

source§

fn deserialize( typ: &'metadata ColumnType<'metadata>, v: Option<FrameSlice<'frame>>, ) -> Result<&'a str, DeserializationError>

source§

impl<'a, 'frame, 'metadata> DeserializeValue<'frame, 'metadata> for &'a [u8]
where 'frame: 'a,

source§

fn type_check(typ: &ColumnType<'_>) -> Result<(), TypeCheckError>

source§

fn deserialize( typ: &'metadata ColumnType<'metadata>, v: Option<FrameSlice<'frame>>, ) -> Result<&'a [u8], DeserializationError>

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for IpAddr

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for bool

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for f32

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for f64

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for i8

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for i16

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for i32

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for i64

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for ()

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for Uuid

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for String

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for Vec<u8>

source§

impl<'frame, 'metadata, K, V> DeserializeValue<'frame, 'metadata> for BTreeMap<K, V>
where K: DeserializeValue<'frame, 'metadata> + Ord, V: DeserializeValue<'frame, 'metadata>,

source§

fn type_check(typ: &ColumnType<'_>) -> Result<(), TypeCheckError>

source§

fn deserialize( typ: &'metadata ColumnType<'metadata>, v: Option<FrameSlice<'frame>>, ) -> Result<BTreeMap<K, V>, DeserializationError>

source§

impl<'frame, 'metadata, K, V, S> DeserializeValue<'frame, 'metadata> for HashMap<K, V, S>
where K: DeserializeValue<'frame, 'metadata> + Eq + Hash, V: DeserializeValue<'frame, 'metadata>, S: BuildHasher + Default + 'frame,

source§

fn type_check(typ: &ColumnType<'_>) -> Result<(), TypeCheckError>

source§

fn deserialize( typ: &'metadata ColumnType<'metadata>, v: Option<FrameSlice<'frame>>, ) -> Result<HashMap<K, V, S>, DeserializationError>

source§

impl<'frame, 'metadata, T0> DeserializeValue<'frame, 'metadata> for (T0,)
where T0: DeserializeValue<'frame, 'metadata>,

source§

impl<'frame, 'metadata, T0, T1> DeserializeValue<'frame, 'metadata> for (T0, T1)
where T0: DeserializeValue<'frame, 'metadata>, T1: DeserializeValue<'frame, 'metadata>,

source§

impl<'frame, 'metadata, T0, T1, T2> DeserializeValue<'frame, 'metadata> for (T0, T1, T2)
where T0: DeserializeValue<'frame, 'metadata>, T1: DeserializeValue<'frame, 'metadata>, T2: DeserializeValue<'frame, 'metadata>,

source§

impl<'frame, 'metadata, T0, T1, T2, T3> DeserializeValue<'frame, 'metadata> for (T0, T1, T2, T3)
where T0: DeserializeValue<'frame, 'metadata>, T1: DeserializeValue<'frame, 'metadata>, T2: DeserializeValue<'frame, 'metadata>, T3: DeserializeValue<'frame, 'metadata>,

source§

impl<'frame, 'metadata, T0, T1, T2, T3, T4> DeserializeValue<'frame, 'metadata> for (T0, T1, T2, T3, T4)
where T0: DeserializeValue<'frame, 'metadata>, T1: DeserializeValue<'frame, 'metadata>, T2: DeserializeValue<'frame, 'metadata>, T3: DeserializeValue<'frame, 'metadata>, T4: DeserializeValue<'frame, 'metadata>,

source§

impl<'frame, 'metadata, T0, T1, T2, T3, T4, T5> DeserializeValue<'frame, 'metadata> for (T0, T1, T2, T3, T4, T5)
where T0: DeserializeValue<'frame, 'metadata>, T1: DeserializeValue<'frame, 'metadata>, T2: DeserializeValue<'frame, 'metadata>, T3: DeserializeValue<'frame, 'metadata>, T4: DeserializeValue<'frame, 'metadata>, T5: DeserializeValue<'frame, 'metadata>,

source§

impl<'frame, 'metadata, T0, T1, T2, T3, T4, T5, T6> DeserializeValue<'frame, 'metadata> for (T0, T1, T2, T3, T4, T5, T6)
where T0: DeserializeValue<'frame, 'metadata>, T1: DeserializeValue<'frame, 'metadata>, T2: DeserializeValue<'frame, 'metadata>, T3: DeserializeValue<'frame, 'metadata>, T4: DeserializeValue<'frame, 'metadata>, T5: DeserializeValue<'frame, 'metadata>, T6: DeserializeValue<'frame, 'metadata>,

source§

impl<'frame, 'metadata, T0, T1, T2, T3, T4, T5, T6, T7> DeserializeValue<'frame, 'metadata> for (T0, T1, T2, T3, T4, T5, T6, T7)
where T0: DeserializeValue<'frame, 'metadata>, T1: DeserializeValue<'frame, 'metadata>, T2: DeserializeValue<'frame, 'metadata>, T3: DeserializeValue<'frame, 'metadata>, T4: DeserializeValue<'frame, 'metadata>, T5: DeserializeValue<'frame, 'metadata>, T6: DeserializeValue<'frame, 'metadata>, T7: DeserializeValue<'frame, 'metadata>,

source§

impl<'frame, 'metadata, T0, T1, T2, T3, T4, T5, T6, T7, T8> DeserializeValue<'frame, 'metadata> for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
where T0: DeserializeValue<'frame, 'metadata>, T1: DeserializeValue<'frame, 'metadata>, T2: DeserializeValue<'frame, 'metadata>, T3: DeserializeValue<'frame, 'metadata>, T4: DeserializeValue<'frame, 'metadata>, T5: DeserializeValue<'frame, 'metadata>, T6: DeserializeValue<'frame, 'metadata>, T7: DeserializeValue<'frame, 'metadata>, T8: DeserializeValue<'frame, 'metadata>,

source§

impl<'frame, 'metadata, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> DeserializeValue<'frame, 'metadata> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
where T0: DeserializeValue<'frame, 'metadata>, T1: DeserializeValue<'frame, 'metadata>, T2: DeserializeValue<'frame, 'metadata>, T3: DeserializeValue<'frame, 'metadata>, T4: DeserializeValue<'frame, 'metadata>, T5: DeserializeValue<'frame, 'metadata>, T6: DeserializeValue<'frame, 'metadata>, T7: DeserializeValue<'frame, 'metadata>, T8: DeserializeValue<'frame, 'metadata>, T9: DeserializeValue<'frame, 'metadata>,

source§

impl<'frame, 'metadata, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> DeserializeValue<'frame, 'metadata> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
where T0: DeserializeValue<'frame, 'metadata>, T1: DeserializeValue<'frame, 'metadata>, T2: DeserializeValue<'frame, 'metadata>, T3: DeserializeValue<'frame, 'metadata>, T4: DeserializeValue<'frame, 'metadata>, T5: DeserializeValue<'frame, 'metadata>, T6: DeserializeValue<'frame, 'metadata>, T7: DeserializeValue<'frame, 'metadata>, T8: DeserializeValue<'frame, 'metadata>, T9: DeserializeValue<'frame, 'metadata>, T10: DeserializeValue<'frame, 'metadata>,

source§

impl<'frame, 'metadata, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> DeserializeValue<'frame, 'metadata> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where T0: DeserializeValue<'frame, 'metadata>, T1: DeserializeValue<'frame, 'metadata>, T2: DeserializeValue<'frame, 'metadata>, T3: DeserializeValue<'frame, 'metadata>, T4: DeserializeValue<'frame, 'metadata>, T5: DeserializeValue<'frame, 'metadata>, T6: DeserializeValue<'frame, 'metadata>, T7: DeserializeValue<'frame, 'metadata>, T8: DeserializeValue<'frame, 'metadata>, T9: DeserializeValue<'frame, 'metadata>, T10: DeserializeValue<'frame, 'metadata>, T11: DeserializeValue<'frame, 'metadata>,

source§

impl<'frame, 'metadata, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> DeserializeValue<'frame, 'metadata> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
where T0: DeserializeValue<'frame, 'metadata>, T1: DeserializeValue<'frame, 'metadata>, T2: DeserializeValue<'frame, 'metadata>, T3: DeserializeValue<'frame, 'metadata>, T4: DeserializeValue<'frame, 'metadata>, T5: DeserializeValue<'frame, 'metadata>, T6: DeserializeValue<'frame, 'metadata>, T7: DeserializeValue<'frame, 'metadata>, T8: DeserializeValue<'frame, 'metadata>, T9: DeserializeValue<'frame, 'metadata>, T10: DeserializeValue<'frame, 'metadata>, T11: DeserializeValue<'frame, 'metadata>, T12: DeserializeValue<'frame, 'metadata>,

source§

impl<'frame, 'metadata, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> DeserializeValue<'frame, 'metadata> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
where T0: DeserializeValue<'frame, 'metadata>, T1: DeserializeValue<'frame, 'metadata>, T2: DeserializeValue<'frame, 'metadata>, T3: DeserializeValue<'frame, 'metadata>, T4: DeserializeValue<'frame, 'metadata>, T5: DeserializeValue<'frame, 'metadata>, T6: DeserializeValue<'frame, 'metadata>, T7: DeserializeValue<'frame, 'metadata>, T8: DeserializeValue<'frame, 'metadata>, T9: DeserializeValue<'frame, 'metadata>, T10: DeserializeValue<'frame, 'metadata>, T11: DeserializeValue<'frame, 'metadata>, T12: DeserializeValue<'frame, 'metadata>, T13: DeserializeValue<'frame, 'metadata>,

source§

impl<'frame, 'metadata, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> DeserializeValue<'frame, 'metadata> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
where T0: DeserializeValue<'frame, 'metadata>, T1: DeserializeValue<'frame, 'metadata>, T2: DeserializeValue<'frame, 'metadata>, T3: DeserializeValue<'frame, 'metadata>, T4: DeserializeValue<'frame, 'metadata>, T5: DeserializeValue<'frame, 'metadata>, T6: DeserializeValue<'frame, 'metadata>, T7: DeserializeValue<'frame, 'metadata>, T8: DeserializeValue<'frame, 'metadata>, T9: DeserializeValue<'frame, 'metadata>, T10: DeserializeValue<'frame, 'metadata>, T11: DeserializeValue<'frame, 'metadata>, T12: DeserializeValue<'frame, 'metadata>, T13: DeserializeValue<'frame, 'metadata>, T14: DeserializeValue<'frame, 'metadata>,

source§

impl<'frame, 'metadata, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> DeserializeValue<'frame, 'metadata> for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
where T0: DeserializeValue<'frame, 'metadata>, T1: DeserializeValue<'frame, 'metadata>, T2: DeserializeValue<'frame, 'metadata>, T3: DeserializeValue<'frame, 'metadata>, T4: DeserializeValue<'frame, 'metadata>, T5: DeserializeValue<'frame, 'metadata>, T6: DeserializeValue<'frame, 'metadata>, T7: DeserializeValue<'frame, 'metadata>, T8: DeserializeValue<'frame, 'metadata>, T9: DeserializeValue<'frame, 'metadata>, T10: DeserializeValue<'frame, 'metadata>, T11: DeserializeValue<'frame, 'metadata>, T12: DeserializeValue<'frame, 'metadata>, T13: DeserializeValue<'frame, 'metadata>, T14: DeserializeValue<'frame, 'metadata>, T15: DeserializeValue<'frame, 'metadata>,

source§

impl<'frame, 'metadata, T> DeserializeValue<'frame, 'metadata> for Option<T>
where T: DeserializeValue<'frame, 'metadata>,

source§

impl<'frame, 'metadata, T> DeserializeValue<'frame, 'metadata> for BTreeSet<T>
where T: DeserializeValue<'frame, 'metadata> + Ord,

source§

impl<'frame, 'metadata, T> DeserializeValue<'frame, 'metadata> for Vec<T>
where T: DeserializeValue<'frame, 'metadata>,

source§

fn type_check(typ: &ColumnType<'_>) -> Result<(), TypeCheckError>

source§

fn deserialize( typ: &'metadata ColumnType<'metadata>, v: Option<FrameSlice<'frame>>, ) -> Result<Vec<T>, DeserializationError>

source§

impl<'frame, 'metadata, T, S> DeserializeValue<'frame, 'metadata> for HashSet<T, S>
where T: DeserializeValue<'frame, 'metadata> + Eq + Hash, S: BuildHasher + Default + 'frame,

source§

fn type_check(typ: &ColumnType<'_>) -> Result<(), TypeCheckError>

source§

fn deserialize( typ: &'metadata ColumnType<'metadata>, v: Option<FrameSlice<'frame>>, ) -> Result<HashSet<T, S>, DeserializationError>

Implementors§

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for CqlValue

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for Counter

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for CqlDate

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for CqlDecimal

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for CqlDuration

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for CqlTime

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for CqlTimestamp

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for CqlTimeuuid

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for CqlVarint

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for Bytes

source§

impl<'frame, 'metadata> DeserializeValue<'frame, 'metadata> for UdtIterator<'frame, 'metadata>

source§

impl<'frame, 'metadata, K, V> DeserializeValue<'frame, 'metadata> for MapIterator<'frame, 'metadata, K, V>
where K: DeserializeValue<'frame, 'metadata>, V: DeserializeValue<'frame, 'metadata>,

source§

impl<'frame, 'metadata, T> DeserializeValue<'frame, 'metadata> for MaybeEmpty<T>
where T: DeserializeValue<'frame, 'metadata> + Emptiable,

source§

impl<'frame, 'metadata, T> DeserializeValue<'frame, 'metadata> for ListlikeIterator<'frame, 'metadata, T>
where T: DeserializeValue<'frame, 'metadata>,