pub struct WorktreeAttributes { /* private fields */ }Expand description
A reusable handle that captures the worktree’s .gitattributes chain once so
repeated clean-filter calls (e.g. hash-object --stdin-paths hashing many
paths in one process) don’t re-walk the worktree and re-read every
.gitattributes/global config per path.
Build it once with WorktreeAttributes::from_worktree_root, then call
WorktreeAttributes::apply_clean_filter per path. This mirrors
apply_clean_filter exactly except the expensive attribute-source scan is
amortized across calls.
Implementations§
Source§impl WorktreeAttributes
impl WorktreeAttributes
Sourcepub fn from_worktree_root(worktree_root: impl AsRef<Path>) -> Result<Self>
pub fn from_worktree_root(worktree_root: impl AsRef<Path>) -> Result<Self>
Read the worktree’s attribute sources once (global/core.attributesFile,
every in-tree .gitattributes, and $GIT_DIR/info/attributes).
Sourcepub fn apply_clean_filter(
&self,
config: &GitConfig,
path: &[u8],
content: &[u8],
) -> Result<Vec<u8>>
pub fn apply_clean_filter( &self, config: &GitConfig, path: &[u8], content: &[u8], ) -> Result<Vec<u8>>
Apply the clean conversion to content for path, reusing the cached
attribute chain. Behaviourally identical to apply_clean_filter.
Auto Trait Implementations§
impl Freeze for WorktreeAttributes
impl RefUnwindSafe for WorktreeAttributes
impl Send for WorktreeAttributes
impl Sync for WorktreeAttributes
impl Unpin for WorktreeAttributes
impl UnsafeUnpin for WorktreeAttributes
impl UnwindSafe for WorktreeAttributes
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