disk_file

Struct FileDisk

Source
pub struct FileDisk { /* private fields */ }

Implementations§

Source§

impl FileDisk

Source

pub fn open(file: File, read_only: bool) -> Result<Self, Error>

Source

pub fn with_metadata(file: File, metadata: Metadata) -> Self

Opens the disk using the specified metadata.

This ensures that no metadata queries are made to the file, which may be appropriate if this is wrapped in another disk implementation that retrieves metadata in another way.

Source

pub fn into_inner(self) -> File

Source§

impl FileDisk

Source

pub async fn read( &self, buffers: &RequestBuffers<'_>, sector: u64, ) -> Result<(), DiskError>

Source

pub async fn write( &self, buffers: &RequestBuffers<'_>, sector: u64, _fua: bool, ) -> Result<(), DiskError>

Source

pub async fn flush(&self) -> Result<(), DiskError>

Trait Implementations§

Source§

impl Debug for FileDisk

Source§

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

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

impl DiskIo for FileDisk

Source§

fn disk_type(&self) -> &str

Returns the disk type name as a string. Read more
Source§

fn sector_count(&self) -> u64

Returns the current sector count. Read more
Source§

fn sector_size(&self) -> u32

Returns the logical sector size of the backing store. Read more
Source§

fn is_read_only(&self) -> bool

Returns true if the disk is read only.
Source§

fn disk_id(&self) -> Option<[u8; 16]>

Optionally returns a 16-byte identifier for the disk, if there is a natural one for this backing store. Read more
Source§

fn physical_sector_size(&self) -> u32

Returns the physical sector size of the backing store. Read more
Source§

fn is_fua_respected(&self) -> bool

Returns true if the fua parameter to [DiskIo::write_vectored] is respected by the backing store by ensuring that the IO is immediately committed to disk.
Source§

async fn read_vectored( &self, buffers: &RequestBuffers<'_>, sector: u64, ) -> Result<(), DiskError>

Issues an asynchronous read-scatter operation to the disk. Read more
Source§

async fn write_vectored( &self, buffers: &RequestBuffers<'_>, sector: u64, fua: bool, ) -> Result<(), DiskError>

Issues an asynchronous write-gather operation to the disk. Read more
Source§

async fn sync_cache(&self) -> Result<(), DiskError>

Issues an asynchronous flush operation to the disk.
Source§

async fn unmap( &self, _sector: u64, _count: u64, _block_level_only: bool, ) -> Result<(), DiskError>

Unmap sectors from the layer.
Source§

fn unmap_behavior(&self) -> UnmapBehavior

Returns the behavior of the unmap operation.
§

fn optimal_unmap_sectors(&self) -> u32

Returns the optimal granularity for unmaps, in sectors.
§

fn pr(&self) -> Option<&dyn PersistentReservation>

Optionally returns a trait object to issue persistent reservation requests.
§

fn eject(&self) -> impl Future<Output = Result<(), DiskError>> + Send

Issues an asynchronous eject media operation to the disk.
§

fn wait_resize(&self, sector_count: u64) -> impl Future<Output = u64> + Send

Waits for the disk sector size to be different than the specified value.
Source§

impl Inspect for FileDisk

Source§

fn inspect(&self, req: Request<'_>)

Inspects the object.

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more