IndirectBlock

Struct IndirectBlock 

Source
#[repr(C)]
pub struct IndirectBlock { lbas: [Option<LogicalBlockAddress>; 512], }
Expand description

Represents an indirect block in the filesystem.

An indirect block is used to extend the number of data blocks that an inode can reference. Instead of storing data directly, it contains a list of logical block addresses (LBAs), each pointing to a separate data block on disk.

This structure allows files to grow beyond the direct block limit imposed by the inode structure.

§Usage

Typically used as part of indirect, or double-indirectblock addressing schemes to support large file sizes.

Fields§

§lbas: [Option<LogicalBlockAddress>; 512]

Trait Implementations§

Source§

impl Default for IndirectBlock

Source§

fn default() -> Self

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

impl Deref for IndirectBlock

Source§

type Target = [Option<LogicalBlockAddress>; 512]

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl DerefMut for IndirectBlock

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl MetaData for IndirectBlock

Source§

fn load( ffs: &FastFileSystemInner, lba: LogicalBlockAddress, ) -> Result<BlockPointsTo<Self>, KernelError>

Loads a metadata structure from disk at the specified logical block address. Read more

Auto Trait Implementations§

§

impl Freeze for IndirectBlock

§

impl RefUnwindSafe for IndirectBlock

§

impl Send for IndirectBlock

§

impl Sync for IndirectBlock

§

impl Unpin for IndirectBlock

§

impl UnwindSafe for IndirectBlock

Blanket Implementations§

§

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

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn into(self) -> U

Calls U::from(self).

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

§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
§

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

§

type Error = Infallible

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

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

Performs the conversion.
§

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

§

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

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

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

Performs the conversion.