PostgresValue

Enum PostgresValue 

Source
pub enum PostgresValue<'a> {
    Smallint(i16),
    Integer(i32),
    Bigint(i64),
    Real(f32),
    DoublePrecision(f64),
    Text(Cow<'a, str>),
    Bytea(Cow<'a, [u8]>),
    Boolean(bool),
    Enum(Box<dyn PostgresEnum>),
    Array(Vec<PostgresValue<'a>>),
    Null,
}
Expand description

Represents a PostgreSQL value.

This enum provides type-safe value handling for PostgreSQL operations.

§Examples

use drizzle_postgres::values::PostgresValue;

// Integer conversion
let int_val: PostgresValue<'_> = 42i32.into();
assert!(matches!(int_val, PostgresValue::Integer(42)));

// String conversion
let str_val: PostgresValue<'_> = "hello".into();
assert!(matches!(str_val, PostgresValue::Text(_)));

// Boolean conversion
let bool_val: PostgresValue<'_> = true.into();
assert!(matches!(bool_val, PostgresValue::Boolean(true)));

Variants§

§

Smallint(i16)

SMALLINT values (16-bit signed integer)

§

Integer(i32)

INTEGER values (32-bit signed integer)

§

Bigint(i64)

BIGINT values (64-bit signed integer)

§

Real(f32)

REAL values (32-bit floating point)

§

DoublePrecision(f64)

DOUBLE PRECISION values (64-bit floating point)

§

Text(Cow<'a, str>)

TEXT, VARCHAR, CHAR values

§

Bytea(Cow<'a, [u8]>)

BYTEA values (binary data)

§

Boolean(bool)

BOOLEAN values

§

Enum(Box<dyn PostgresEnum>)

Native PostgreSQL ENUM values

§

Array(Vec<PostgresValue<'a>>)

Array of any PostgreSQL type

§

Null

NULL value

Implementations§

Source§

impl<'a> PostgresValue<'a>

Source

pub const fn is_null(&self) -> bool

Returns true if this value is NULL.

Source

pub const fn as_bool(&self) -> Option<bool>

Returns the boolean value if this is BOOLEAN.

Source

pub const fn as_i16(&self) -> Option<i16>

Returns the i16 value if this is SMALLINT.

Source

pub const fn as_i32(&self) -> Option<i32>

Returns the i32 value if this is INTEGER.

Source

pub const fn as_i64(&self) -> Option<i64>

Returns the i64 value if this is BIGINT.

Source

pub const fn as_f32(&self) -> Option<f32>

Returns the f32 value if this is REAL.

Source

pub const fn as_f64(&self) -> Option<f64>

Returns the f64 value if this is DOUBLE PRECISION.

Source

pub fn as_str(&self) -> Option<&str>

Returns the text value if this is TEXT.

Source

pub fn as_bytes(&self) -> Option<&[u8]>

Returns the bytea value if this is BYTEA.

Source

pub fn as_enum(&self) -> Option<&dyn PostgresEnum>

Returns the enum value if this is a PostgreSQL enum.

Source

pub fn as_array(&self) -> Option<&[PostgresValue<'a>]>

Returns the array elements if this is an ARRAY.

Source

pub fn into_owned(self) -> OwnedPostgresValue

Converts this value into an owned representation.

Source

pub fn convert<T: FromPostgresValue>(self) -> Result<T, DrizzleError>

Convert this PostgreSQL value to a Rust type using the FromPostgresValue trait.

Source

pub fn convert_ref<T: FromPostgresValue>(&self) -> Result<T, DrizzleError>

Convert a reference to this PostgreSQL value to a Rust type.

Trait Implementations§

Source§

impl<'a> Clone for PostgresValue<'a>

Source§

fn clone(&self) -> PostgresValue<'a>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for PostgresValue<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a> Default for PostgresValue<'a>

Source§

fn default() -> PostgresValue<'a>

Returns the “default value” for a type. Read more
Source§

impl<'a> Display for PostgresValue<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a> From<&'a [PostgresValue<'a>]> for PostgresValue<'a>

Source§

fn from(value: &'a [PostgresValue<'a>]) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a [u8]> for PostgresValue<'a>

Source§

fn from(value: &'a [u8]) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a OwnedPostgresValue> for PostgresValue<'a>

Source§

fn from(value: &'a OwnedPostgresValue) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a PostgresValue<'a>> for Cow<'a, PostgresValue<'a>>

Source§

fn from(value: &'a PostgresValue<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&PostgresValue<'a>> for OwnedPostgresValue

Source§

fn from(value: &PostgresValue<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a String> for PostgresValue<'a>

Source§

fn from(value: &'a String) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a bool> for PostgresValue<'a>

Source§

fn from(value: &'a bool) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a f32> for PostgresValue<'a>

Source§

fn from(value: &'a f32) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a f64> for PostgresValue<'a>

Source§

fn from(value: &'a f64) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a i16> for PostgresValue<'a>

Source§

fn from(value: &'a i16) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a i32> for PostgresValue<'a>

Source§

fn from(value: &'a i32) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a i64> for PostgresValue<'a>

Source§

fn from(value: &'a i64) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a i8> for PostgresValue<'a>

Source§

fn from(value: &'a i8) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a isize> for PostgresValue<'a>

Source§

fn from(value: &'a isize) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a str> for PostgresValue<'a>

Source§

fn from(value: &'a str) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a u16> for PostgresValue<'a>

Source§

fn from(value: &'a u16) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a u32> for PostgresValue<'a>

Source§

fn from(value: &'a u32) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a u64> for PostgresValue<'a>

Source§

fn from(value: &'a u64) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a u8> for PostgresValue<'a>

Source§

fn from(value: &'a u8) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<&'a usize> for PostgresValue<'a>

Source§

fn from(value: &'a usize) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<Cow<'a, [u8]>> for PostgresValue<'a>

Source§

fn from(value: Cow<'a, [u8]>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<Cow<'a, str>> for PostgresValue<'a>

Source§

fn from(value: Cow<'a, str>) -> Self

Converts to this type from the input type.
Source§

impl<'a, T> From<Option<T>> for PostgresValue<'a>
where T: TryInto<PostgresValue<'a>>,

Source§

fn from(value: Option<T>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<OwnedPostgresValue> for PostgresValue<'a>

Source§

fn from(value: OwnedPostgresValue) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<PostgresValue<'a>> for Cow<'a, PostgresValue<'a>>

Source§

fn from(value: PostgresValue<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<PostgresValue<'a>> for OwnedPostgresValue

Source§

fn from(value: PostgresValue<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<PostgresValue<'a>> for SQL<'a, PostgresValue<'a>>

Source§

fn from(value: PostgresValue<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<String> for PostgresValue<'a>

Source§

fn from(value: String) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<Vec<PostgresValue<'a>>> for PostgresValue<'a>

Source§

fn from(value: Vec<PostgresValue<'a>>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<Vec<u8>> for PostgresValue<'a>

Source§

fn from(value: Vec<u8>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<bool> for PostgresValue<'a>

Source§

fn from(value: bool) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<f32> for PostgresValue<'a>

Source§

fn from(value: f32) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<f64> for PostgresValue<'a>

Source§

fn from(value: f64) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<i16> for PostgresValue<'a>

Source§

fn from(value: i16) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<i32> for PostgresValue<'a>

Source§

fn from(value: i32) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<i64> for PostgresValue<'a>

Source§

fn from(value: i64) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<i8> for PostgresValue<'a>

Source§

fn from(value: i8) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<isize> for PostgresValue<'a>

Source§

fn from(value: isize) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<u16> for PostgresValue<'a>

Source§

fn from(value: u16) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<u32> for PostgresValue<'a>

Source§

fn from(value: u32) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<u64> for PostgresValue<'a>

Source§

fn from(value: u64) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<u8> for PostgresValue<'a>

Source§

fn from(value: u8) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<usize> for PostgresValue<'a>

Source§

fn from(value: usize) -> Self

Converts to this type from the input type.
Source§

impl<'a> PartialEq for PostgresValue<'a>

Source§

fn eq(&self, other: &PostgresValue<'a>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'a> SQLParam for PostgresValue<'a>

Source§

const DIALECT: Dialect = drizzle_core::dialect::Dialect::PostgreSQL

The SQL dialect for this parameter type Default is SQLite (uses ? placeholders)
Source§

impl<'a, Table, Query> ToSQL<'a, PostgresValue<'a>> for CTEView<'a, Table, Query>
where Query: ToSQL<'a, PostgresValue<'a>>,

ToSQL implementation renders just the CTE name for use in FROM clauses. Unlike aliased tables (which render as “original” AS “alias”), CTEs should just render as their name since they’re already defined in the WITH clause.

Source§

fn to_sql(&self) -> SQL<'a, PostgresValue<'a>>

Source§

fn alias(&self, alias: &'static str) -> SQL<'a, V>

Source§

impl<'a, Schema, State, Table> ToSQL<'a, PostgresValue<'a>> for QueryBuilder<'a, Schema, State, Table>

Source§

fn to_sql(&self) -> SQL<'a, PostgresValue<'a>>

Source§

fn alias(&self, alias: &'static str) -> SQL<'a, V>

Source§

impl<'a> TryFrom<&'a PostgresValue<'a>> for &'a [PostgresValue<'a>]

Source§

type Error = DrizzleError

The type returned in the event of a conversion error.
Source§

fn try_from(value: &'a PostgresValue<'a>) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<'a> TryFrom<&'a PostgresValue<'a>> for &'a [u8]

Source§

type Error = DrizzleError

The type returned in the event of a conversion error.
Source§

fn try_from(value: &'a PostgresValue<'a>) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<'a> TryFrom<&'a PostgresValue<'a>> for &'a str

Source§

type Error = DrizzleError

The type returned in the event of a conversion error.
Source§

fn try_from(value: &'a PostgresValue<'a>) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<'a> TryFrom<PostgresValue<'a>> for String

Source§

type Error = DrizzleError

The type returned in the event of a conversion error.
Source§

fn try_from(value: PostgresValue<'a>) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<'a> TryFrom<PostgresValue<'a>> for Vec<PostgresValue<'a>>

Source§

type Error = DrizzleError

The type returned in the event of a conversion error.
Source§

fn try_from(value: PostgresValue<'a>) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<'a> TryFrom<PostgresValue<'a>> for Vec<u8>

Source§

type Error = DrizzleError

The type returned in the event of a conversion error.
Source§

fn try_from(value: PostgresValue<'a>) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<'a> TryFrom<PostgresValue<'a>> for bool

Source§

type Error = DrizzleError

The type returned in the event of a conversion error.
Source§

fn try_from(value: PostgresValue<'a>) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<'a> TryFrom<PostgresValue<'a>> for f32

Source§

type Error = DrizzleError

The type returned in the event of a conversion error.
Source§

fn try_from(value: PostgresValue<'a>) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<'a> TryFrom<PostgresValue<'a>> for f64

Source§

type Error = DrizzleError

The type returned in the event of a conversion error.
Source§

fn try_from(value: PostgresValue<'a>) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<'a> TryFrom<PostgresValue<'a>> for i16

Source§

type Error = DrizzleError

The type returned in the event of a conversion error.
Source§

fn try_from(value: PostgresValue<'a>) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<'a> TryFrom<PostgresValue<'a>> for i32

Source§

type Error = DrizzleError

The type returned in the event of a conversion error.
Source§

fn try_from(value: PostgresValue<'a>) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<'a> TryFrom<PostgresValue<'a>> for i64

Source§

type Error = DrizzleError

The type returned in the event of a conversion error.
Source§

fn try_from(value: PostgresValue<'a>) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<'a> StructuralPartialEq for PostgresValue<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for PostgresValue<'a>

§

impl<'a> !RefUnwindSafe for PostgresValue<'a>

§

impl<'a> Send for PostgresValue<'a>

§

impl<'a> Sync for PostgresValue<'a>

§

impl<'a> Unpin for PostgresValue<'a>

§

impl<'a> !UnwindSafe for PostgresValue<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToCompactString for T
where T: Display,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.