Struct SizeError
pub struct SizeError<Src, Dst: ?Sized> { /* private fields */ }
The error emitted if the conversion source is of incorrect size.
Implementations
impl<Src, Dst: ?Sized> SizeError<Src, Dst>
fn into_src(self) -> SrcProduces the source underlying the failed conversion.
fn map_src<NewSrc>(self, f: impl FnOnce(Src) -> NewSrc) -> SizeError<NewSrc, Dst>Maps the source value associated with the conversion error.
This can help mitigate [issues with
Send,Syncand'staticbounds][self#send-sync-and-static].Examples
use *; let source: = ; // Try to read a `u32` from `source`. This will fail because there are insufficient // bytes in `source`. let maybe_u32: = u32read_from_bytes; // Map the error's source to its size. let maybe_u32: = maybe_u32.map_err;
Trait Implementations
impl<Src, Dst> Display for SizeError<Src, Dst>
where
Src: Deref,
Dst: KnownLayout + ?Sized,
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl<Src, Dst> Error for SizeError<Src, Dst>
where
Src: Deref,
Dst: KnownLayout + ?Sized,
impl<Src, Dst: ?Sized + Unaligned> From<ConvertError<AlignmentError<Src, Dst>, SizeError<Src, Dst>, never>> for SizeError<Src, Dst>
fn from(err: CastError<Src, Dst>) -> SizeError<Src, Dst>Infallibly extracts the
SizeErrorfrom thisCastErrorsinceDstis unaligned.Since
Dst: Unaligned, it is impossible to encounter an alignment error, and so the only error that can be encountered at runtime is aSizeError. This method permits extracting thatSizeErrorinfallibly.Examples
use *; # use *;
impl<Src, Dst: ?Sized> Debug for SizeError<Src, Dst>
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl<Src: Clone, Dst: ?Sized> Clone for SizeError<Src, Dst>
fn clone(&self) -> Self
impl<Src: Eq, Dst: ?Sized> Eq for SizeError<Src, Dst>
impl<Src: PartialEq, Dst: ?Sized> PartialEq for SizeError<Src, Dst>
fn eq(&self, other: &Self) -> bool
Auto Trait Implementations
impl<Src, Dst> Freeze for SizeError<Src, Dst>
where
Src: Freeze,
SendSyncPhantomData<Dst>: Freeze,
Dst: ?Sized,
impl<Src, Dst> RefUnwindSafe for SizeError<Src, Dst>
where
Src: RefUnwindSafe,
SendSyncPhantomData<Dst>: RefUnwindSafe,
Dst: ?Sized,
impl<Src, Dst> Send for SizeError<Src, Dst>
where
Src: Send,
SendSyncPhantomData<Dst>: Send,
Dst: ?Sized,
impl<Src, Dst> Sync for SizeError<Src, Dst>
where
Src: Sync,
SendSyncPhantomData<Dst>: Sync,
Dst: ?Sized,
impl<Src, Dst> Unpin for SizeError<Src, Dst>
where
Src: Unpin,
SendSyncPhantomData<Dst>: Unpin,
Dst: ?Sized,
impl<Src, Dst> UnsafeUnpin for SizeError<Src, Dst>
where
Src: UnsafeUnpin,
SendSyncPhantomData<Dst>: UnsafeUnpin,
Dst: ?Sized,
impl<Src, Dst> UnwindSafe for SizeError<Src, Dst>
where
Src: UnwindSafe,
SendSyncPhantomData<Dst>: UnwindSafe,
Dst: ?Sized,
Blanket Implementations
impl<T> Any for SizeError<Src, Dst>
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for SizeError<Src, Dst>
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for SizeError<Src, Dst>
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneToUninit for SizeError<Src, Dst>
where
T: Clone,
unsafe fn clone_to_uninit(&self, dest: *mut u8)
impl<T> From<T> for SizeError<Src, Dst>
fn from(t: T) -> TReturns the argument unchanged.
impl<T, U> Into<U> for SizeError<Src, Dst>
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for SizeError<Src, Dst>
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for SizeError<Src, Dst>
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>