Struct BlockSize

Source
pub struct BlockSize(/* private fields */);
Expand description

Size of a block in bytes.

This type enforces some restrictions on the block size: it must be at least 512 bytes and fit within a u32.

§Minimum size

The MasterBootRecord size is 512 bytes and must fit within a block, so the block size must be at least that large.

Implementations§

Source§

impl BlockSize

Source

pub const BS_512: Self

512-byte block size.

Source

pub const BS_4096: Self

4096-byte block size.

Source

pub const fn new(num_bytes: u32) -> Option<Self>

Create a BlockSize.

Source

pub fn from_usize(num_bytes: usize) -> Option<Self>

Create a BlockSize.

Source

pub const fn to_u32(self) -> u32

Get the size in bytes as a u32.

Source

pub const fn to_u64(self) -> u64

Get the size in bytes as a u64.

Source

pub fn to_usize(self) -> Option<usize>

Get the size in bytes as a usize.

Source

pub fn is_multiple_of_block_size<T>(&self, value: T) -> bool
where T: TryInto<u64>,

Check if value is an even multiple of the block size.

§Panics

Panics if value does not fit in a u64.

Source

pub fn assert_valid_block_buffer(&self, buffer: &[u8])

Assert that the buffer size is an even multiple of the block size.

§Panics

Panics if buffer.len() is not an even multiple of the block size.

Trait Implementations§

Source§

impl Clone for BlockSize

Source§

fn clone(&self) -> BlockSize

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for BlockSize

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for BlockSize

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Display for BlockSize

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Hash for BlockSize

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for BlockSize

Source§

fn cmp(&self, other: &BlockSize) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for BlockSize

Source§

fn eq(&self, other: &BlockSize) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for BlockSize

Source§

fn partial_cmp(&self, other: &BlockSize) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Copy for BlockSize

Source§

impl Eq for BlockSize

Source§

impl StructuralPartialEq for BlockSize

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.