mz_repr

Trait DatumType

Source
pub trait DatumType<'a, E>: Sized {
    // Required methods
    fn nullable() -> bool;
    fn fallible() -> bool;
    fn try_from_result(
        res: Result<Datum<'a>, E>,
    ) -> Result<Self, Result<Datum<'a>, E>>;
    fn into_result(self, temp_storage: &'a RowArena) -> Result<Datum<'a>, E>;
}
Expand description

A bridge between native Rust types and SQL runtime types represented in Datums

Required Methods§

Source

fn nullable() -> bool

Whether this Rust type can represent NULL values

Source

fn fallible() -> bool

Whether this Rust type can represent errors

Source

fn try_from_result( res: Result<Datum<'a>, E>, ) -> Result<Self, Result<Datum<'a>, E>>

Try to convert a Result whose Ok variant is a Datum into this native Rust type (Self). If it fails the error variant will contain the original result.

Source

fn into_result(self, temp_storage: &'a RowArena) -> Result<Datum<'a>, E>

Convert this Rust type into a Result containing a Datum, or an error

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'a, E> DatumType<'a, E> for &'a str

Source§

fn nullable() -> bool

Source§

fn fallible() -> bool

Source§

fn try_from_result( res: Result<Datum<'a>, E>, ) -> Result<Self, Result<Datum<'a>, E>>

Source§

fn into_result(self, _temp_storage: &'a RowArena) -> Result<Datum<'a>, E>

Source§

impl<'a, E> DatumType<'a, E> for &'a [u8]

Source§

fn nullable() -> bool

Source§

fn fallible() -> bool

Source§

fn try_from_result( res: Result<Datum<'a>, E>, ) -> Result<Self, Result<Datum<'a>, E>>

Source§

fn into_result(self, _temp_storage: &'a RowArena) -> Result<Datum<'a>, E>

Source§

impl<'a, E> DatumType<'a, E> for bool

Source§

fn nullable() -> bool

Source§

fn fallible() -> bool

Source§

fn try_from_result( res: Result<Datum<'a>, E>, ) -> Result<Self, Result<Datum<'a>, E>>

Source§

fn into_result(self, _temp_storage: &'a RowArena) -> Result<Datum<'a>, E>

Source§

impl<'a, E> DatumType<'a, E> for f32

Source§

fn nullable() -> bool

Source§

fn fallible() -> bool

Source§

fn try_from_result( res: Result<Datum<'a>, E>, ) -> Result<Self, Result<Datum<'a>, E>>

Source§

fn into_result(self, _temp_storage: &'a RowArena) -> Result<Datum<'a>, E>

Source§

impl<'a, E> DatumType<'a, E> for f64

Source§

fn nullable() -> bool

Source§

fn fallible() -> bool

Source§

fn try_from_result( res: Result<Datum<'a>, E>, ) -> Result<Self, Result<Datum<'a>, E>>

Source§

fn into_result(self, _temp_storage: &'a RowArena) -> Result<Datum<'a>, E>

Source§

impl<'a, E> DatumType<'a, E> for i16

Source§

fn nullable() -> bool

Source§

fn fallible() -> bool

Source§

fn try_from_result( res: Result<Datum<'a>, E>, ) -> Result<Self, Result<Datum<'a>, E>>

Source§

fn into_result(self, _temp_storage: &'a RowArena) -> Result<Datum<'a>, E>

Source§

impl<'a, E> DatumType<'a, E> for i32

Source§

fn nullable() -> bool

Source§

fn fallible() -> bool

Source§

fn try_from_result( res: Result<Datum<'a>, E>, ) -> Result<Self, Result<Datum<'a>, E>>

Source§

fn into_result(self, _temp_storage: &'a RowArena) -> Result<Datum<'a>, E>

Source§

impl<'a, E> DatumType<'a, E> for i64

Source§

fn nullable() -> bool

Source§

fn fallible() -> bool

Source§

fn try_from_result( res: Result<Datum<'a>, E>, ) -> Result<Self, Result<Datum<'a>, E>>

Source§

fn into_result(self, _temp_storage: &'a RowArena) -> Result<Datum<'a>, E>

Source§

impl<'a, E> DatumType<'a, E> for u16

Source§

fn nullable() -> bool

Source§

fn fallible() -> bool

Source§

fn try_from_result( res: Result<Datum<'a>, E>, ) -> Result<Self, Result<Datum<'a>, E>>

Source§

fn into_result(self, _temp_storage: &'a RowArena) -> Result<Datum<'a>, E>

Source§

impl<'a, E> DatumType<'a, E> for u32

Source§

fn nullable() -> bool

Source§

fn fallible() -> bool

Source§

fn try_from_result( res: Result<Datum<'a>, E>, ) -> Result<Self, Result<Datum<'a>, E>>

Source§

fn into_result(self, _temp_storage: &'a RowArena) -> Result<Datum<'a>, E>

Source§

impl<'a, E> DatumType<'a, E> for u64

Source§

fn nullable() -> bool

Source§

fn fallible() -> bool

Source§

fn try_from_result( res: Result<Datum<'a>, E>, ) -> Result<Self, Result<Datum<'a>, E>>

Source§

fn into_result(self, _temp_storage: &'a RowArena) -> Result<Datum<'a>, E>

Source§

impl<'a, E> DatumType<'a, E> for NaiveTime

Source§

fn nullable() -> bool

Source§

fn fallible() -> bool

Source§

fn try_from_result( res: Result<Datum<'a>, E>, ) -> Result<Self, Result<Datum<'a>, E>>

Source§

fn into_result(self, _temp_storage: &'a RowArena) -> Result<Datum<'a>, E>

Source§

impl<'a, E> DatumType<'a, E> for Uuid

Source§

fn nullable() -> bool

Source§

fn fallible() -> bool

Source§

fn try_from_result( res: Result<Datum<'a>, E>, ) -> Result<Self, Result<Datum<'a>, E>>

Source§

fn into_result(self, _temp_storage: &'a RowArena) -> Result<Datum<'a>, E>

Source§

impl<'a, E> DatumType<'a, E> for String

Source§

fn nullable() -> bool

Source§

fn fallible() -> bool

Source§

fn try_from_result( res: Result<Datum<'a>, E>, ) -> Result<Self, Result<Datum<'a>, E>>

Source§

fn into_result(self, temp_storage: &'a RowArena) -> Result<Datum<'a>, E>

Source§

impl<'a, E> DatumType<'a, E> for Vec<u8>

Source§

fn nullable() -> bool

Source§

fn fallible() -> bool

Source§

fn try_from_result( res: Result<Datum<'a>, E>, ) -> Result<Self, Result<Datum<'a>, E>>

Source§

fn into_result(self, temp_storage: &'a RowArena) -> Result<Datum<'a>, E>

Source§

impl<'a, E, B: DatumType<'a, E>> DatumType<'a, E> for Option<B>

Source§

fn nullable() -> bool

Source§

fn fallible() -> bool

Source§

fn try_from_result( res: Result<Datum<'a>, E>, ) -> Result<Self, Result<Datum<'a>, E>>

Source§

fn into_result(self, temp_storage: &'a RowArena) -> Result<Datum<'a>, E>

Source§

impl<'a, E, B: DatumType<'a, E>> DatumType<'a, E> for Result<B, E>

Source§

fn nullable() -> bool

Source§

fn fallible() -> bool

Source§

fn try_from_result( res: Result<Datum<'a>, E>, ) -> Result<Self, Result<Datum<'a>, E>>

Source§

fn into_result(self, temp_storage: &'a RowArena) -> Result<Datum<'a>, E>

Implementors§

Source§

impl<'a, E> DatumType<'a, E> for Datum<'a>

Source§

impl<'a, E> DatumType<'a, E> for Char<&'a str>

Source§

impl<'a, E> DatumType<'a, E> for Char<String>

Source§

impl<'a, E> DatumType<'a, E> for Date

Source§

impl<'a, E> DatumType<'a, E> for Interval

Source§

impl<'a, E> DatumType<'a, E> for Jsonb

Source§

impl<'a, E> DatumType<'a, E> for JsonbRef<'a>

Source§

impl<'a, E> DatumType<'a, E> for AclItem

Source§

impl<'a, E> DatumType<'a, E> for MzAclItem

Source§

impl<'a, E> DatumType<'a, E> for PgLegacyName<&'a str>

Source§

impl<'a, E> DatumType<'a, E> for PgLegacyName<String>

Source§

impl<'a, E> DatumType<'a, E> for Range<Datum<'a>>

Source§

impl<'a, E> DatumType<'a, E> for Range<DatumNested<'a>>

Source§

impl<'a, E> DatumType<'a, E> for Oid

Source§

impl<'a, E> DatumType<'a, E> for PgLegacyChar

Source§

impl<'a, E> DatumType<'a, E> for RegClass

Source§

impl<'a, E> DatumType<'a, E> for RegProc

Source§

impl<'a, E> DatumType<'a, E> for RegType

Source§

impl<'a, E> DatumType<'a, E> for CheckedTimestamp<DateTime<Utc>>

Source§

impl<'a, E> DatumType<'a, E> for CheckedTimestamp<NaiveDateTime>

Source§

impl<'a, E> DatumType<'a, E> for VarChar<&'a str>

Source§

impl<'a, E> DatumType<'a, E> for VarChar<String>

Source§

impl<'a, E> DatumType<'a, E> for DatumList<'a>

Source§

impl<'a, E> DatumType<'a, E> for DatumMap<'a>

Source§

impl<'a, E> DatumType<'a, E> for ArrayRustType<String>

Source§

impl<'a, E> DatumType<'a, E> for Timestamp

Source§

impl<'a, E> DatumType<'a, E> for Numeric