pub struct FileTree { /* private fields */ }Expand description
A virtual filesystem snapshot: path → CAS blob hash.
Uses BTreeMap for deterministic ordering (important for hashing and diffs).
Implementations§
Source§impl FileTree
impl FileTree
Sourcepub fn from_map(entries: BTreeMap<String, Hash>) -> Self
pub fn from_map(entries: BTreeMap<String, Hash>) -> Self
Create a file tree from a pre-populated map.
Sourcepub fn rename(&mut self, old_path: &str, new_path: String) -> Option<Hash>
pub fn rename(&mut self, old_path: &str, new_path: String) -> Option<Hash>
Rename a path in the tree.
Sourcepub fn iter(&self) -> impl Iterator<Item = (&String, &Hash)>
pub fn iter(&self) -> impl Iterator<Item = (&String, &Hash)>
Iterate over all (path, hash) entries in sorted order.
Sourcepub fn content_hash(&self) -> Hash
pub fn content_hash(&self) -> Hash
Compute a BLAKE3 hash of the entire tree state.
This provides a content-addressed identifier for a snapshot.
Trait Implementations§
impl Eq for FileTree
impl StructuralPartialEq for FileTree
Auto Trait Implementations§
impl Freeze for FileTree
impl RefUnwindSafe for FileTree
impl Send for FileTree
impl Sync for FileTree
impl Unpin for FileTree
impl UnsafeUnpin for FileTree
impl UnwindSafe for FileTree
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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