#[non_exhaustive]pub enum TypeError {
UnexpectedNull,
TypeMismatch {
expected: &'static str,
actual: String,
},
OutOfRange {
target_type: &'static str,
},
InvalidEncoding(String),
InvalidBinary(String),
InvalidDateTime(String),
InvalidDecimal(String),
InvalidUuid(String),
Truncation(String),
UnsupportedConversion {
from: String,
to: &'static str,
},
UnsupportedType {
sql_type: String,
reason: String,
},
BufferTooSmall {
needed: usize,
available: usize,
},
}Expand description
Errors that can occur during type conversion.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
UnexpectedNull
Value is null when non-null was expected.
TypeMismatch
Type mismatch during conversion.
OutOfRange
Value is out of range for target type.
InvalidEncoding(String)
Invalid encoding in string data.
InvalidBinary(String)
Invalid binary data.
InvalidDateTime(String)
Invalid date/time value.
InvalidDecimal(String)
Invalid decimal value.
InvalidUuid(String)
Invalid UUID value.
Truncation(String)
Truncation occurred during conversion.
UnsupportedConversion
Unsupported type conversion.
UnsupportedType
SQL type rejected as unsupported in this context (e.g. deprecated types).
Fields
BufferTooSmall
Buffer too small for value.
Implementations§
Source§impl TypeError
impl TypeError
Sourcepub fn is_transient(&self) -> bool
pub fn is_transient(&self) -> bool
Check if this error is transient and may succeed on retry.
Type conversion errors are always terminal — they indicate a mismatch between the SQL type and the Rust type, which won’t resolve itself on retry.
Sourcepub fn is_terminal(&self) -> bool
pub fn is_terminal(&self) -> bool
Check if this error is terminal and will never succeed on retry.
All type errors are terminal.
Trait Implementations§
Source§impl Error for TypeError
impl Error for TypeError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()