LinuxReadOnlyEngine

Struct LinuxReadOnlyEngine 

Source
pub struct LinuxReadOnlyEngine<B> { /* private fields */ }
Expand description

Product-neutral read-only engine shared by native FUSE callbacks and deterministic tests.

Implementations§

Source§

impl<B> LinuxReadOnlyEngine<B>
where B: CloudFilesBackend + 'static,

Source

pub fn new( backend: Arc<B>, inodes: Arc<LinuxInodeTable>, attributes: LinuxAttributePolicy, ) -> Self

Creates a read-only engine from a backend, restored inode table, and attribute policy.

Source

pub fn inode_table(&self) -> &LinuxInodeTable

Returns the active immutable inode table.

Source

pub fn attribute_policy(&self) -> &LinuxAttributePolicy

Returns the active native attribute policy.

Source

pub async fn lookup(&self, parent: LinuxInode, name: &str) -> Result<LinuxNode>

Resolves one name by enumerating all backend pages for the parent snapshot.

§Errors

Returns an error when validation fails or an underlying backend, store, or platform operation fails.

Source

pub async fn getattr(&self, inode: LinuxInode) -> Result<LinuxNode>

Loads attributes for one restored inode.

§Errors

Returns an error when validation fails or an underlying backend, store, or platform operation fails.

Source

pub async fn open_file(&self, inode: LinuxInode) -> Result<LinuxFileHandle>

Opens a regular file and captures its exact content revision for subsequent range reads.

§Errors

Returns an error when validation fails or an underlying backend, store, or platform operation fails.

Source

pub async fn read_file( &self, inode: LinuxInode, handle: LinuxFileHandle, offset: u64, size: u32, ) -> Result<Bytes>

Reads an exact range using the revision captured by open_file.

§Errors

Returns an error when validation fails or an underlying backend, store, or platform operation fails.

Source

pub fn release_file(&self, handle: LinuxFileHandle) -> Result<()>

Releases one file handle. Releasing the same handle twice reports a stale handle.

§Errors

Returns an error when validation fails or an underlying backend, store, or platform operation fails.

Source

pub async fn open_directory( &self, inode: LinuxInode, ) -> Result<LinuxDirectoryHandle>

Opens a directory and freezes one complete paged snapshot for stable FUSE cookies.

§Errors

Returns an error when validation fails or an underlying backend, store, or platform operation fails.

Source

pub fn directory_snapshot( &self, inode: LinuxInode, handle: LinuxDirectoryHandle, ) -> Result<LinuxDirectorySnapshot>

Returns the immutable snapshot associated with an open directory handle.

§Errors

Returns an error when validation fails or an underlying backend, store, or platform operation fails.

Source

pub fn release_directory(&self, handle: LinuxDirectoryHandle) -> Result<()>

Releases one directory snapshot handle.

§Errors

Returns an error when validation fails or an underlying backend, store, or platform operation fails.

Trait Implementations§

Source§

impl<B> Clone for LinuxReadOnlyEngine<B>

Source§

fn clone(&self) -> Self

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

Auto Trait Implementations§

§

impl<B> Freeze for LinuxReadOnlyEngine<B>

§

impl<B> RefUnwindSafe for LinuxReadOnlyEngine<B>
where B: RefUnwindSafe,

§

impl<B> Send for LinuxReadOnlyEngine<B>
where B: Sync + Send,

§

impl<B> Sync for LinuxReadOnlyEngine<B>
where B: Sync + Send,

§

impl<B> Unpin for LinuxReadOnlyEngine<B>

§

impl<B> UnwindSafe for LinuxReadOnlyEngine<B>
where B: RefUnwindSafe,

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,