pub struct AlignmentContract {
pub buffer_alignment: usize,
pub offset_alignment: usize,
pub size_alignment: usize,
}Expand description
Alignment contract for Direct I/O
Fields§
§buffer_alignment: usizeRequired buffer alignment
offset_alignment: usizeRequired offset alignment
size_alignment: usizeRequired size alignment
Implementations§
Source§impl AlignmentContract
impl AlignmentContract
Sourcepub fn platform_default() -> Self
pub fn platform_default() -> Self
Platform-specific contract
Sourcepub fn validate_buffer(&self, ptr: *const u8) -> Result<(), AlignmentError>
pub fn validate_buffer(&self, ptr: *const u8) -> Result<(), AlignmentError>
Validate buffer alignment
Sourcepub fn validate_offset(&self, offset: u64) -> Result<(), AlignmentError>
pub fn validate_offset(&self, offset: u64) -> Result<(), AlignmentError>
Validate offset alignment
Sourcepub fn validate_size(&self, size: usize) -> Result<(), AlignmentError>
pub fn validate_size(&self, size: usize) -> Result<(), AlignmentError>
Validate size alignment
Sourcepub fn align_size(&self, size: usize) -> usize
pub fn align_size(&self, size: usize) -> usize
Round up size to alignment
Auto Trait Implementations§
impl Freeze for AlignmentContract
impl RefUnwindSafe for AlignmentContract
impl Send for AlignmentContract
impl Sync for AlignmentContract
impl Unpin for AlignmentContract
impl UnsafeUnpin for AlignmentContract
impl UnwindSafe for AlignmentContract
Blanket Implementations§
impl<T> Allocation for T
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more