Trait scylla_cql::types::deserialize::row::DeserializeRow

source ·
pub trait DeserializeRow<'frame, 'metadata>
where Self: Sized,
{ // Required methods fn type_check(specs: &[ColumnSpec<'_>]) -> Result<(), TypeCheckError>; fn deserialize( row: ColumnIterator<'frame, 'metadata>, ) -> Result<Self, DeserializationError>; }
Expand description

A type that can be deserialized from 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(specs: &[ColumnSpec<'_>]) -> Result<(), TypeCheckError>

Checks that the schema of the result matches what this type expects.

This function can check whether column types and names match the expectations.

source

fn deserialize( row: ColumnIterator<'frame, 'metadata>, ) -> Result<Self, DeserializationError>

Deserializes a row from given column iterator.

This function can assume that the driver called type_check to verify the row’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<'frame, 'metadata> DeserializeRow<'frame, 'metadata> for ()

source§

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

source§

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

source§

impl<'frame, 'metadata, T0, T1, T2> DeserializeRow<'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> DeserializeRow<'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> DeserializeRow<'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> DeserializeRow<'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> DeserializeRow<'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> DeserializeRow<'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> DeserializeRow<'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> DeserializeRow<'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> DeserializeRow<'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> DeserializeRow<'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> DeserializeRow<'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> DeserializeRow<'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> DeserializeRow<'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> DeserializeRow<'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>,

Implementors§

source§

impl<'frame, 'metadata> DeserializeRow<'frame, 'metadata> for Row

While no longer encouraged (because the new framework encourages deserializing directly into desired types, entirely bypassing CqlValue), this can be indispensable for some use cases, i.e. those involving dynamic parsing (ORMs?).

source§

impl<'frame, 'metadata> DeserializeRow<'frame, 'metadata> for ColumnIterator<'frame, 'metadata>