pub trait FromPostgresValue: Sized {
// Required methods
fn from_postgres_bool(value: bool) -> Result<Self, DrizzleError>;
fn from_postgres_i16(value: i16) -> Result<Self, DrizzleError>;
fn from_postgres_i32(value: i32) -> Result<Self, DrizzleError>;
fn from_postgres_i64(value: i64) -> Result<Self, DrizzleError>;
fn from_postgres_f32(value: f32) -> Result<Self, DrizzleError>;
fn from_postgres_f64(value: f64) -> Result<Self, DrizzleError>;
fn from_postgres_text(value: &str) -> Result<Self, DrizzleError>;
fn from_postgres_bytes(value: &[u8]) -> Result<Self, DrizzleError>;
// Provided methods
fn from_postgres_null() -> Result<Self, DrizzleError> { ... }
fn from_postgres_array(
_value: Vec<PostgresValue<'_>>,
) -> Result<Self, DrizzleError> { ... }
}Expand description
Trait for types that can be converted from PostgreSQL values.
PostgreSQL has many types, but this trait focuses on the core conversions:
- Integers (i16, i32, i64)
- Floats (f32, f64)
- Text (String, &str)
- Binary (Vec
, &u8) - Boolean
- NULL handling
§Implementation Notes
- Implement the methods that make sense for your type
- Return
Errfor unsupported conversions PostgresEnumderive automatically implements this trait
Required Methods§
Sourcefn from_postgres_bool(value: bool) -> Result<Self, DrizzleError>
fn from_postgres_bool(value: bool) -> Result<Self, DrizzleError>
Convert from a boolean value
§Errors
Returns DrizzleError::ConversionError if the value cannot be represented as the target type.
Sourcefn from_postgres_i16(value: i16) -> Result<Self, DrizzleError>
fn from_postgres_i16(value: i16) -> Result<Self, DrizzleError>
Convert from a 16-bit integer value
§Errors
Returns DrizzleError::ConversionError if the value cannot be represented as the target type.
Sourcefn from_postgres_i32(value: i32) -> Result<Self, DrizzleError>
fn from_postgres_i32(value: i32) -> Result<Self, DrizzleError>
Convert from a 32-bit integer value
§Errors
Returns DrizzleError::ConversionError if the value cannot be represented as the target type.
Sourcefn from_postgres_i64(value: i64) -> Result<Self, DrizzleError>
fn from_postgres_i64(value: i64) -> Result<Self, DrizzleError>
Convert from a 64-bit integer value
§Errors
Returns DrizzleError::ConversionError if the value cannot be represented as the target type.
Sourcefn from_postgres_f32(value: f32) -> Result<Self, DrizzleError>
fn from_postgres_f32(value: f32) -> Result<Self, DrizzleError>
Convert from a 32-bit float value
§Errors
Returns DrizzleError::ConversionError if the value cannot be represented as the target type.
Sourcefn from_postgres_f64(value: f64) -> Result<Self, DrizzleError>
fn from_postgres_f64(value: f64) -> Result<Self, DrizzleError>
Convert from a 64-bit float value
§Errors
Returns DrizzleError::ConversionError if the value cannot be represented as the target type.
Sourcefn from_postgres_text(value: &str) -> Result<Self, DrizzleError>
fn from_postgres_text(value: &str) -> Result<Self, DrizzleError>
Convert from a text/string value
§Errors
Returns DrizzleError::ConversionError if the value cannot be represented as the target type.
Sourcefn from_postgres_bytes(value: &[u8]) -> Result<Self, DrizzleError>
fn from_postgres_bytes(value: &[u8]) -> Result<Self, DrizzleError>
Convert from a binary/bytea value
§Errors
Returns DrizzleError::ConversionError if the value cannot be represented as the target type.
Provided Methods§
Sourcefn from_postgres_null() -> Result<Self, DrizzleError>
fn from_postgres_null() -> Result<Self, DrizzleError>
Convert from a NULL value (default returns error)
§Errors
Returns DrizzleError::ConversionError unless the implementor treats NULL as a valid value.
Sourcefn from_postgres_array(
_value: Vec<PostgresValue<'_>>,
) -> Result<Self, DrizzleError>
fn from_postgres_array( _value: Vec<PostgresValue<'_>>, ) -> Result<Self, DrizzleError>
Convert from an ARRAY value
§Errors
Returns DrizzleError::ConversionError if the target type cannot represent an ARRAY value.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".