Struct abi_stable::std_types::RBoxError_
source · #[repr(C)]pub struct RBoxError_<M = SyncSend> { /* private fields */ }
Expand description
Ffi-safe version of Box<dyn std::error::Error + 'static>
whose Send + Sync
ness is determined by the M
type parameter.
§Examples
§Converting from and into Box<dyn Error + ...>
use std::{convert::TryFrom, error::Error as ErrorTrait};
use abi_stable::std_types::{RBox, RBoxError, SendRBoxError, UnsyncRBoxError};
{
let from: Box<dyn ErrorTrait> = "hello, error".into();
let rbox = UnsyncRBoxError::from_box(from);
let _: Box<dyn ErrorTrait> = rbox.into_box();
}
{
let arr_err = <[(); 0]>::try_from(&[()][..]).unwrap_err();
let from: Box<dyn ErrorTrait + Send> = Box::new(arr_err);
let rbox = SendRBoxError::from_box(from);
let _: Box<dyn ErrorTrait + Send> = rbox.into_box();
}
{
let arr_err = <[(); 0]>::try_from(&[()][..]).unwrap_err();
let from: Box<dyn ErrorTrait + Send + Sync> = Box::new(arr_err);
let rbox = RBoxError::from_box(from);
let _: Box<dyn ErrorTrait + Send + Sync> = rbox.into_box();
}
§Downcasting by value
use std::num::{ParseFloatError, ParseIntError};
use abi_stable::std_types::{RBox, RBoxError};
// Constructing a `RBoxError` from a `Box<dyn Error>`, then downcasting to a `ParseIntError`.
{
let parse_err = "".parse::<u64>().unwrap_err();
let dyn_err: Box<dyn std::error::Error + Send + Sync + 'static> =
Box::new(parse_err.clone());
let err = RBoxError::from_box(dyn_err);
assert_eq!(
err.downcast::<ParseIntError>().unwrap(),
RBox::new(parse_err)
);
}
// Constructing a `RBoxError` from a `ParseFloatError`, then downcasting back to it.
{
let parse_err = "".parse::<f32>().unwrap_err();
let err = RBoxError::new(parse_err.clone());
assert_eq!(
err.downcast::<ParseFloatError>().unwrap(),
RBox::new(parse_err)
);
}
// Constructing a `RBoxError` from a `ParseFloatError`,
// then attempting to downcasting it to a `ParseIntError`.
{
let parse_err = "".parse::<f32>().unwrap_err();
let err = RBoxError::new(parse_err);
assert!(err.downcast::<ParseIntError>().is_err());
}
§Downcasting by reference
use std::{convert::TryFrom, num::TryFromIntError, str::Utf8Error};
use abi_stable::std_types::{RBox, UnsyncRBoxError};
// Constructing a `UnsyncRBoxError` from a `Box<dyn Error>`,
// then downcasting to a `TryFromIntError`.
{
let int_err = u32::try_from(-1_i32).unwrap_err();
let dyn_err: Box<dyn std::error::Error + 'static> = Box::new(int_err.clone());
let err = UnsyncRBoxError::from_box(dyn_err);
assert_eq!(err.downcast_ref::<TryFromIntError>().unwrap(), &int_err);
}
// Constructing a `UnsyncRBoxError` from a `Utf8Error`, then downcasting back to it.
{
let utf8_err = std::str::from_utf8(&[255]).unwrap_err();
let err = UnsyncRBoxError::new(utf8_err.clone());
assert_eq!(err.downcast_ref::<Utf8Error>().unwrap(), &utf8_err);
}
// Constructing a `UnsyncRBoxError` from a `Utf8Error`,
// then attempting to downcasting it to a `TryFromIntError`.
{
let utf8_err = std::str::from_utf8(&[255]).unwrap_err();
let err = UnsyncRBoxError::new(utf8_err);
assert!(err.downcast_ref::<TryFromIntError>().is_none());
}
§Downcasting by mutable reference
use std::string::{FromUtf16Error, FromUtf8Error};
use abi_stable::std_types::{RBox, SendRBoxError};
// Constructing a `SendRBoxError` from a `Box<dyn Error>`,
// then downcasting to a `FromUtf8Error`.
{
let str_err = || String::from_utf8(vec![255]).unwrap_err();
let dyn_err: Box<dyn std::error::Error + Send + 'static> = Box::new(str_err());
let mut err = SendRBoxError::from_box(dyn_err);
assert!(err.downcast_ref::<FromUtf8Error>().is_some(), "part A");
}
// Constructing a `SendRBoxError` from a `FromUtf8Error`, then downcasting back to it.
{
let str_err = || String::from_utf8(vec![255]).unwrap_err();
let mut err = SendRBoxError::new(str_err());
assert!(err.downcast_ref::<FromUtf8Error>().is_some(), "part B");
}
// Constructing a `SendRBoxError` from a `FromUtf16Error`,
// then attempting to downcasting it to a `FromUtf8Error`.
{
let str_err = || String::from_utf16(&[0xD834]).unwrap_err();
let mut err = SendRBoxError::new(str_err());
assert!(err.downcast_ref::<FromUtf8Error>().is_none(), "part C");
}
Implementations§
source§impl RBoxError_<SyncSend>
impl RBoxError_<SyncSend>
source§impl RBoxError_<UnsyncSend>
impl RBoxError_<UnsyncSend>
sourcepub fn new<T>(value: T) -> Selfwhere
T: ErrorTrait + Send + 'static,
pub fn new<T>(value: T) -> Selfwhere
T: ErrorTrait + Send + 'static,
Constructs a Send + !Sync
RBoxError_
from an error.
§Example
use abi_stable::std_types::SendRBoxError;
let str_err = String::from_utf16(&[0xD834]).unwrap_err() ;
let err = SendRBoxError::new(str_err);
source§impl RBoxError_<UnsyncUnsend>
impl RBoxError_<UnsyncUnsend>
sourcepub fn new<T>(value: T) -> Selfwhere
T: ErrorTrait + 'static,
pub fn new<T>(value: T) -> Selfwhere
T: ErrorTrait + 'static,
Constructs a !Send + !Sync
RBoxError_
from an error.
§Example
use abi_stable::std_types::UnsyncRBoxError;
let str_err = std::str::from_utf8(&[255]).unwrap_err() ;
let err = UnsyncRBoxError::new(str_err);
source§impl<M> RBoxError_<M>
impl<M> RBoxError_<M>
sourcepub fn from_fmt<T>(value: &T) -> Self
pub fn from_fmt<T>(value: &T) -> Self
Constructs an RBoxError from an error, storing the Debug and Display messages without storing the error value.
§Example
use abi_stable::std_types::RBoxError;
let int_error = "".parse::<u32>().unwrap_err();
let display_fmt = int_error.to_string();
let debug_fmt = format!("{:#?}", int_error);
let err = RBoxError::from_fmt(&int_error);
assert_eq!(display_fmt, err.to_string());
assert_eq!(debug_fmt, format!("{:?}", err));
sourcepub fn from_debug<T>(value: &T) -> Self
pub fn from_debug<T>(value: &T) -> Self
Constructs an RBoxError from a type that only implements Debug, storing the Debug message without storing the error value.
§Example
use abi_stable::std_types::RBoxError;
let int_error = "".parse::<u32>().unwrap_err();
let debug_fmt = format!("{:#?}", int_error);
let err = RBoxError::from_debug(&int_error);
assert_eq!(debug_fmt, format!("{}", err));
assert_eq!(debug_fmt, format!("{:#?}", err));
source§impl<M> RBoxError_<M>
impl<M> RBoxError_<M>
sourcepub fn to_formatted_error<N>(&self) -> RBoxError_<N>
pub fn to_formatted_error<N>(&self) -> RBoxError_<N>
Converts this error to a formatted error
This is used to decouple an RBoxError
from the dynamic library that produced it,
in order to unload the dynamic library.
source§impl<M> RBoxError_<M>
impl<M> RBoxError_<M>
sourcepub fn heap_address(&self) -> usize
pub fn heap_address(&self) -> usize
The address of the Box<_>
this wraps
sourcepub fn as_unsync(&self) -> &UnsyncRBoxError
pub fn as_unsync(&self) -> &UnsyncRBoxError
Casts this &RBoxError_<_>
to &UnsyncRBoxError
.
§Example
use abi_stable::std_types::{RBoxError, UnsyncRBoxError};
use std::convert::TryFrom;
let int_err = u32::try_from(-1_i32).unwrap_err();
let err: RBoxError = RBoxError::new(int_err);
let unsync_err: &UnsyncRBoxError = err.as_unsync();
sourcepub fn into_unsync(self) -> UnsyncRBoxError
pub fn into_unsync(self) -> UnsyncRBoxError
Converts this RBoxError_<_>
to UnsyncRBoxError
.
§Example
use abi_stable::std_types::{RBoxError, UnsyncRBoxError};
use std::convert::TryFrom;
let int_err = u64::try_from(-1338_i32).unwrap_err();
let err: RBoxError = RBoxError::new(int_err);
let unsync_err: UnsyncRBoxError = err.into_unsync();
source§impl RBoxError_<SyncSend>
impl RBoxError_<SyncSend>
sourcepub fn as_send(&self) -> &SendRBoxError
pub fn as_send(&self) -> &SendRBoxError
Casts this &RBoxError_<_>
to &SendRBoxError
.
§Example
use abi_stable::std_types::{RBoxError, SendRBoxError};
use std::convert::TryFrom;
let slice: &mut [u32] = &mut [];
let arr_err=<&mut [u32;10]>::try_from(slice).unwrap_err();
let err: RBoxError = RBoxError::new(arr_err);
let unsync_err: &SendRBoxError = err.as_send();
sourcepub fn into_send(self) -> SendRBoxError
pub fn into_send(self) -> SendRBoxError
Converts this RBoxError_<_>
to SendRBoxError
.
§Example
use abi_stable::std_types::{RBoxError, SendRBoxError};
use std::convert::TryFrom;
let slice: &[u32] = &[];
let arr_err=<&[u32;10]>::try_from(slice).unwrap_err();
let err: RBoxError = RBoxError::new(arr_err);
let unsync_err: SendRBoxError = err.into_send();
source§impl RBoxError_<SyncSend>
impl RBoxError_<SyncSend>
sourcepub fn from_box(this: Box<dyn ErrorTrait + Send + Sync + 'static>) -> Self
pub fn from_box(this: Box<dyn ErrorTrait + Send + Sync + 'static>) -> Self
Converts a Box<dyn Error + Send + Sync>
to a Send + Sync
RBoxError_
.
RBoxError::from_box( RBoxError::into_box( err ) )
is a no-op with respect to the heap address of the RBoxError_<_>.
§Behavior
If the contents of the Box<_>
is an erased RBoxError_<_>
it will be returned directly,
otherwise the Box<_>
will be converted into an RBoxError_<_>
using RBoxError_::new
.
§Example
For an example of converting back and forth to a Box<dyn Error>
here is the example.
sourcepub fn into_box(self) -> Box<dyn ErrorTrait + Send + Sync + 'static>
pub fn into_box(self) -> Box<dyn ErrorTrait + Send + Sync + 'static>
Converts an RBoxError_<_>
to a Box<dyn Error>
.
RBoxError::from_box( RBoxError::into_box( err ) )
is a no-op with respect to the heap address of the RBoxError_<_>.
§Behavior
If the contents of the RBoxError_<_>
is an erased Box<dyn Error + ... >
it will be returned directly,
otherwise the RBoxError_<_>
will be converted into an Box<dyn Error + ... >
using Box::new
.
§Example
For an example of converting back and forth to a Box<dyn Error>
here is the example.
sourcepub fn downcast<T>(self) -> Result<RBox<T>, Self>where
T: ErrorTrait + 'static,
pub fn downcast<T>(self) -> Result<RBox<T>, Self>where
T: ErrorTrait + 'static,
Converts this RBoxError_<_>
to an RBox<T>
.
If was constructed from a Box<dyn Error + ... >
,
and this is being casted to another type,
it’ll first downcast to Box<dyn Error + ... >
,
then it’ll downcast the Box<dyn Error + ... >
into RBox<T>
.
§Errors
This returns Err(self)
in any of these cases:
-
The
RBoxError_
wasn’t constructed in the current dynamic library. -
The
RBoxError_
was constructed with a different type thanT
.
§Example
Look at the type level documentation for the example.
sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: ErrorTrait + 'static,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: ErrorTrait + 'static,
Converts this &RBoxError_<_>
to a &T
.
If was constructed from a Box<dyn Error + ... >
,
and this is being casted to another type,
it’ll first downcast to &dyn Error + ...
,
then it’ll downcast the &dyn Error + ...
into &T
.
§Errors
This returns None
in any of these cases:
-
The
RBoxError_
wasn’t constructed in the current dynamic library. -
The
RBoxError_
was constructed with a different type thanT
.
§Example
Look at the type level documentation for the example. the example.
sourcepub fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: ErrorTrait + 'static,
pub fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: ErrorTrait + 'static,
Converts this &mut RBoxError_<_>
to a &mut T
.
If was constructed from a Box<dyn Error + ... >
,
and this is being casted to another type,
it’ll first downcast to &mut dyn Error + ...
,
then it’ll downcast the &mut dyn Error + ...
into &mut T
.
§Errors
This returns None
in any of these cases:
-
The
RBoxError_
wasn’t constructed in the current dynamic library. -
The
RBoxError_
was constructed with a different type thanT
.
§Example
Look at the type level documentation for the example. the example.
source§impl RBoxError_<UnsyncSend>
impl RBoxError_<UnsyncSend>
sourcepub fn from_box(this: Box<dyn ErrorTrait + Send + 'static>) -> Self
pub fn from_box(this: Box<dyn ErrorTrait + Send + 'static>) -> Self
Converts a Box<dyn Error + Send>
to a Send + !Sync
RBoxError_
.
RBoxError::from_box( RBoxError::into_box( err ) )
is a no-op with respect to the heap address of the RBoxError_<_>.
§Behavior
If the contents of the Box<_>
is an erased RBoxError_<_>
it will be returned directly,
otherwise the Box<_>
will be converted into an RBoxError_<_>
using RBoxError_::new
.
§Example
For an example of converting back and forth to a Box<dyn Error>
here is the example.
sourcepub fn into_box(self) -> Box<dyn ErrorTrait + Send + 'static>
pub fn into_box(self) -> Box<dyn ErrorTrait + Send + 'static>
Converts an RBoxError_<_>
to a Box<dyn Error>
.
RBoxError::from_box( RBoxError::into_box( err ) )
is a no-op with respect to the heap address of the RBoxError_<_>.
§Behavior
If the contents of the RBoxError_<_>
is an erased Box<dyn Error + ... >
it will be returned directly,
otherwise the RBoxError_<_>
will be converted into an Box<dyn Error + ... >
using Box::new
.
§Example
For an example of converting back and forth to a Box<dyn Error>
here is the example.
sourcepub fn downcast<T>(self) -> Result<RBox<T>, Self>where
T: ErrorTrait + 'static,
pub fn downcast<T>(self) -> Result<RBox<T>, Self>where
T: ErrorTrait + 'static,
Converts this RBoxError_<_>
to an RBox<T>
.
If was constructed from a Box<dyn Error + ... >
,
and this is being casted to another type,
it’ll first downcast to Box<dyn Error + ... >
,
then it’ll downcast the Box<dyn Error + ... >
into RBox<T>
.
§Errors
This returns Err(self)
in any of these cases:
-
The
RBoxError_
wasn’t constructed in the current dynamic library. -
The
RBoxError_
was constructed with a different type thanT
.
§Example
Look at the type level documentation for the example.
sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: ErrorTrait + 'static,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: ErrorTrait + 'static,
Converts this &RBoxError_<_>
to a &T
.
If was constructed from a Box<dyn Error + ... >
,
and this is being casted to another type,
it’ll first downcast to &dyn Error + ...
,
then it’ll downcast the &dyn Error + ...
into &T
.
§Errors
This returns None
in any of these cases:
-
The
RBoxError_
wasn’t constructed in the current dynamic library. -
The
RBoxError_
was constructed with a different type thanT
.
§Example
Look at the type level documentation for the example. the example.
sourcepub fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: ErrorTrait + 'static,
pub fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: ErrorTrait + 'static,
Converts this &mut RBoxError_<_>
to a &mut T
.
If was constructed from a Box<dyn Error + ... >
,
and this is being casted to another type,
it’ll first downcast to &mut dyn Error + ...
,
then it’ll downcast the &mut dyn Error + ...
into &mut T
.
§Errors
This returns None
in any of these cases:
-
The
RBoxError_
wasn’t constructed in the current dynamic library. -
The
RBoxError_
was constructed with a different type thanT
.
§Example
Look at the type level documentation for the example. the example.
source§impl RBoxError_<UnsyncUnsend>
impl RBoxError_<UnsyncUnsend>
sourcepub fn from_box(this: Box<dyn ErrorTrait + 'static>) -> Self
pub fn from_box(this: Box<dyn ErrorTrait + 'static>) -> Self
Converts a Box<dyn Error>
to a !Send + !Sync
RBoxError_
.
RBoxError::from_box( RBoxError::into_box( err ) )
is a no-op with respect to the heap address of the RBoxError_<_>.
§Behavior
If the contents of the Box<_>
is an erased RBoxError_<_>
it will be returned directly,
otherwise the Box<_>
will be converted into an RBoxError_<_>
using RBoxError_::new
.
§Example
For an example of converting back and forth to a Box<dyn Error>
here is the example.
sourcepub fn into_box(self) -> Box<dyn ErrorTrait + 'static>
pub fn into_box(self) -> Box<dyn ErrorTrait + 'static>
Converts an RBoxError_<_>
to a Box<dyn Error>
.
RBoxError::from_box( RBoxError::into_box( err ) )
is a no-op with respect to the heap address of the RBoxError_<_>.
§Behavior
If the contents of the RBoxError_<_>
is an erased Box<dyn Error + ... >
it will be returned directly,
otherwise the RBoxError_<_>
will be converted into an Box<dyn Error + ... >
using Box::new
.
§Example
For an example of converting back and forth to a Box<dyn Error>
here is the example.
sourcepub fn downcast<T>(self) -> Result<RBox<T>, Self>where
T: ErrorTrait + 'static,
pub fn downcast<T>(self) -> Result<RBox<T>, Self>where
T: ErrorTrait + 'static,
Converts this RBoxError_<_>
to an RBox<T>
.
If was constructed from a Box<dyn Error + ... >
,
and this is being casted to another type,
it’ll first downcast to Box<dyn Error + ... >
,
then it’ll downcast the Box<dyn Error + ... >
into RBox<T>
.
§Errors
This returns Err(self)
in any of these cases:
-
The
RBoxError_
wasn’t constructed in the current dynamic library. -
The
RBoxError_
was constructed with a different type thanT
.
§Example
Look at the type level documentation for the example.
sourcepub fn downcast_ref<T>(&self) -> Option<&T>where
T: ErrorTrait + 'static,
pub fn downcast_ref<T>(&self) -> Option<&T>where
T: ErrorTrait + 'static,
Converts this &RBoxError_<_>
to a &T
.
If was constructed from a Box<dyn Error + ... >
,
and this is being casted to another type,
it’ll first downcast to &dyn Error + ...
,
then it’ll downcast the &dyn Error + ...
into &T
.
§Errors
This returns None
in any of these cases:
-
The
RBoxError_
wasn’t constructed in the current dynamic library. -
The
RBoxError_
was constructed with a different type thanT
.
§Example
Look at the type level documentation for the example. the example.
sourcepub fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: ErrorTrait + 'static,
pub fn downcast_mut<T>(&mut self) -> Option<&mut T>where
T: ErrorTrait + 'static,
Converts this &mut RBoxError_<_>
to a &mut T
.
If was constructed from a Box<dyn Error + ... >
,
and this is being casted to another type,
it’ll first downcast to &mut dyn Error + ...
,
then it’ll downcast the &mut dyn Error + ...
into &mut T
.
§Errors
This returns None
in any of these cases:
-
The
RBoxError_
wasn’t constructed in the current dynamic library. -
The
RBoxError_
was constructed with a different type thanT
.
§Example
Look at the type level documentation for the example. the example.
Trait Implementations§
source§impl<M> Debug for RBoxError_<M>
impl<M> Debug for RBoxError_<M>
source§impl<M> Display for RBoxError_<M>
impl<M> Display for RBoxError_<M>
source§impl<M> Error for RBoxError_<M>
impl<M> Error for RBoxError_<M>
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
source§impl From<Box<dyn Error>> for RBoxError_<UnsyncUnsend>
impl From<Box<dyn Error>> for RBoxError_<UnsyncUnsend>
source§fn from(this: Box<dyn ErrorTrait + 'static>) -> RBoxError_<UnsyncUnsend>
fn from(this: Box<dyn ErrorTrait + 'static>) -> RBoxError_<UnsyncUnsend>
Converts a Box<dyn Error>
to a !Send + !Sync
RBoxError_
.
§Behavior
If the contents of the Box<_> is an erased RBoxError_<_>
it will be returned directly,
otherwise the Box<_>
will be converted into an RBoxError_<_>
using RBoxError_::new
.
source§impl From<Box<dyn Error + Send>> for RBoxError_<UnsyncSend>
impl From<Box<dyn Error + Send>> for RBoxError_<UnsyncSend>
source§fn from(this: Box<dyn ErrorTrait + Send + 'static>) -> RBoxError_<UnsyncSend>
fn from(this: Box<dyn ErrorTrait + Send + 'static>) -> RBoxError_<UnsyncSend>
Converts a Box<dyn Error + Send>
to a Send + !Sync
RBoxError_
.
§Behavior
If the contents of the Box<_> is an erased RBoxError_<_>
it will be returned directly,
otherwise the Box<_>
will be converted into an RBoxError_<_>
using RBoxError_::new
.
source§impl From<Box<dyn Error + Sync + Send>> for RBoxError_<SyncSend>
impl From<Box<dyn Error + Sync + Send>> for RBoxError_<SyncSend>
source§fn from(
this: Box<dyn ErrorTrait + Send + Sync + 'static>,
) -> RBoxError_<SyncSend>
fn from( this: Box<dyn ErrorTrait + Send + Sync + 'static>, ) -> RBoxError_<SyncSend>
Converts a Box<dyn Error + Send + Sync>
to a Send + Sync
RBoxError_
.
§Behavior
If the contents of the Box<_> is an erased RBoxError_<_>
it will be returned directly,
otherwise the Box<_>
will be converted into an RBoxError_<_>
using RBoxError_::new
.
source§impl<M> GetStaticEquivalent_ for RBoxError_<M>where
M: __StableAbi,
impl<M> GetStaticEquivalent_ for RBoxError_<M>where
M: __StableAbi,
source§type StaticEquivalent = _static_RBoxError_<<M as GetStaticEquivalent_>::StaticEquivalent>
type StaticEquivalent = _static_RBoxError_<<M as GetStaticEquivalent_>::StaticEquivalent>
'static
equivalent of Self
source§impl<M> StableAbi for RBoxError_<M>where
M: __StableAbi,
impl<M> StableAbi for RBoxError_<M>where
M: __StableAbi,
source§type IsNonZeroType = False
type IsNonZeroType = False
source§const LAYOUT: &'static TypeLayout = _
const LAYOUT: &'static TypeLayout = _
source§const ABI_CONSTS: AbiConsts = _
const ABI_CONSTS: AbiConsts = _
const
-equivalents of the associated types.Auto Trait Implementations§
impl<M> Freeze for RBoxError_<M>
impl<M> RefUnwindSafe for RBoxError_<M>where
M: RefUnwindSafe,
impl<M> Send for RBoxError_<M>where
M: Send,
impl<M> Sync for RBoxError_<M>where
M: Sync,
impl<M> Unpin for RBoxError_<M>where
M: Unpin,
impl<M> UnwindSafe for RBoxError_<M>where
M: UnwindSafe,
Blanket Implementations§
source§impl<T> AlignerFor<1> for T
impl<T> AlignerFor<1> for T
source§impl<T> AlignerFor<1024> for T
impl<T> AlignerFor<1024> for T
source§type Aligner = AlignTo1024<T>
type Aligner = AlignTo1024<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<128> for T
impl<T> AlignerFor<128> for T
source§type Aligner = AlignTo128<T>
type Aligner = AlignTo128<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<16> for T
impl<T> AlignerFor<16> for T
source§impl<T> AlignerFor<16384> for T
impl<T> AlignerFor<16384> for T
source§type Aligner = AlignTo16384<T>
type Aligner = AlignTo16384<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<2> for T
impl<T> AlignerFor<2> for T
source§impl<T> AlignerFor<2048> for T
impl<T> AlignerFor<2048> for T
source§type Aligner = AlignTo2048<T>
type Aligner = AlignTo2048<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<256> for T
impl<T> AlignerFor<256> for T
source§type Aligner = AlignTo256<T>
type Aligner = AlignTo256<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<32> for T
impl<T> AlignerFor<32> for T
source§impl<T> AlignerFor<32768> for T
impl<T> AlignerFor<32768> for T
source§type Aligner = AlignTo32768<T>
type Aligner = AlignTo32768<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<4> for T
impl<T> AlignerFor<4> for T
source§impl<T> AlignerFor<4096> for T
impl<T> AlignerFor<4096> for T
source§type Aligner = AlignTo4096<T>
type Aligner = AlignTo4096<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<512> for T
impl<T> AlignerFor<512> for T
source§type Aligner = AlignTo512<T>
type Aligner = AlignTo512<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.source§impl<T> AlignerFor<64> for T
impl<T> AlignerFor<64> for T
source§impl<T> AlignerFor<8> for T
impl<T> AlignerFor<8> for T
source§impl<T> AlignerFor<8192> for T
impl<T> AlignerFor<8192> for T
source§type Aligner = AlignTo8192<T>
type Aligner = AlignTo8192<T>
AlignTo*
type which aligns Self
to ALIGNMENT
.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<S> ROExtAcc for S
impl<S> ROExtAcc for S
source§fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
fn f_get<F>(&self, offset: FieldOffset<S, F, Aligned>) -> &F
offset
. Read moresource§fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
fn f_get_mut<F>(&mut self, offset: FieldOffset<S, F, Aligned>) -> &mut F
offset
. Read moresource§fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
fn f_get_ptr<F, A>(&self, offset: FieldOffset<S, F, A>) -> *const F
offset
. Read moresource§fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
fn f_get_mut_ptr<F, A>(&mut self, offset: FieldOffset<S, F, A>) -> *mut F
offset
. Read moresource§impl<S> ROExtOps<Aligned> for S
impl<S> ROExtOps<Aligned> for S
source§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Aligned>, value: F) -> F
offset
) with value
,
returning the previous value of the field. Read moresource§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Aligned>) -> Fwhere
F: Copy,
source§impl<S> ROExtOps<Unaligned> for S
impl<S> ROExtOps<Unaligned> for S
source§fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
fn f_replace<F>(&mut self, offset: FieldOffset<S, F, Unaligned>, value: F) -> F
offset
) with value
,
returning the previous value of the field. Read moresource§fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
fn f_get_copy<F>(&self, offset: FieldOffset<S, F, Unaligned>) -> Fwhere
F: Copy,
source§impl<T> SelfOps for Twhere
T: ?Sized,
impl<T> SelfOps for Twhere
T: ?Sized,
source§fn piped<F, U>(self, f: F) -> U
fn piped<F, U>(self, f: F) -> U
source§fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
fn piped_ref<'a, F, U>(&'a self, f: F) -> Uwhere
F: FnOnce(&'a Self) -> U,
piped
except that the function takes &Self
Useful for functions that take &Self
instead of Self
. Read moresource§fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
fn piped_mut<'a, F, U>(&'a mut self, f: F) -> Uwhere
F: FnOnce(&'a mut Self) -> U,
piped
, except that the function takes &mut Self
.
Useful for functions that take &mut Self
instead of Self
.source§fn mutated<F>(self, f: F) -> Self
fn mutated<F>(self, f: F) -> Self
source§fn observe<F>(self, f: F) -> Self
fn observe<F>(self, f: F) -> Self
source§fn as_ref_<T>(&self) -> &T
fn as_ref_<T>(&self) -> &T
AsRef
,
using the turbofish .as_ref_::<_>()
syntax. Read more