#[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()
Auto Trait Implementations§
impl Freeze for TypeError
impl RefUnwindSafe for TypeError
impl Send for TypeError
impl Sync for TypeError
impl Unpin for TypeError
impl UnsafeUnpin for TypeError
impl UnwindSafe for TypeError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.