Skip to main content

Vfs

Struct Vfs 

Source
pub struct Vfs { /* private fields */ }
Expand description

The engine handle: the reader openers plus the resolver.

Implementations§

Source§

impl Vfs

Source

pub fn new() -> Self

A Vfs with every fleet reader registered (default_openers).

Source

pub fn open(&self, path: &Path) -> VfsResult<Evidence>

Open evidence at path: resolve the base byte source (an EWF container by path, or a raw file), then recurse container/volume/filesystem layers and mount the first filesystem found. A source nothing recognizes yields an Evidence with fs: None — a genuinely clean unknown, not an error.

Source

pub fn open_source(&self, source: DynSource) -> VfsResult<Option<DynFs>>

Resolve a filesystem directly from a byte source — an in-memory buffer, a nested image, or a carved region. Ok(None) when nothing recognizes it.

Source

pub fn snapshots(&self, path: &Path) -> VfsResult<Vec<SnapshotView>>

Enumerate an APFS volume’s snapshots as a time-indexed [H] cohort. The path is resolved through any container/volume-system nesting to its APFS filesystem (exactly as Vfs::open does), then apfs-core lists the snapshot-metadata tree. Evidence with no APFS filesystem yields an empty cohort — a genuinely clean “no APFS snapshots here”, not an error.

The returned cohort is a Vec<SnapshotView> (the list form of the richer state_history_forensic::TemporalCohort<H>, adopted here once the generic HistoricalSource wiring lands); each view carries an EpochTag derived from the snapshot’s create_time and a re-openable PathSpec locator.

§Errors

The bootstrap/decoding errors of resolving the path, or an apfs-core decode failure while walking the snapshot-metadata tree.

Source

pub fn open_snapshot(&self, path: &Path, xid: u64) -> VfsResult<Evidence>

Re-mount one APFS snapshot by its transaction xid — the end-to-end counterpart to a SnapshotView locator. Resolves the path to its APFS filesystem, then mounts the volume state frozen at xid (the live volume for its own xid, else the retained snapshot). The returned Evidence carries the snapshot-topped locator and the mounted point-in-time filesystem.

§Errors

VfsError::Bootstrap if the path resolves to no filesystem; VfsError::Unsupported if the resolved filesystem is not APFS; or an apfs-core decode failure (including VfsError::Decode for an unknown xid).

Trait Implementations§

Source§

impl Default for Vfs

Source§

fn default() -> Self

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

Auto Trait Implementations§

§

impl !RefUnwindSafe for Vfs

§

impl !UnwindSafe for Vfs

§

impl Freeze for Vfs

§

impl Send for Vfs

§

impl Sync for Vfs

§

impl Unpin for Vfs

§

impl UnsafeUnpin for Vfs

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.

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

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.