pub struct Proxy<'repo> { /* private fields */ }
Expand description

A stand-in to a worktree as result of a worktree iteration.

It provides access to typical worktree state, but may not actually point to a valid checkout as the latter has been moved or deleted.

Implementations§

source§

impl<'repo> Proxy<'repo>

source

pub fn base(&self) -> Result<PathBuf>

Read the location of the checkout, the base of the work tree. Note that the location might not exist.

source

pub fn git_dir(&self) -> &Path

The git directory for the work tree, typically contained within the parent git dir.

source

pub fn id(&self) -> &BStr

The name of the worktree, which is derived from its folder within the worktrees directory within the parent .git folder.

source

pub fn is_locked(&self) -> bool

Return true if the worktree cannot be pruned, moved or deleted, which is useful if it is located on an external storage device.

source

pub fn lock_reason(&self) -> Option<BString>

Provide a reason for the locking of this worktree, if it is locked at all.

Note that we squelch errors in case the file cannot be read in which case the reason is an empty string.

source

pub fn into_repo_with_possibly_inaccessible_worktree( self ) -> Result<Repository, Error>

Transform this proxy into a Repository while ignoring issues reading base() and ignoring that it might not exist.

Most importantly, the Repository might be initialized with a non-existing work tree directory as the checkout was removed or moved in the mean time or is unavailable for other reasons. The caller will encounter io errors if it’s used like the work tree is guaranteed to be present, but can still access a lot of information if work tree access is avoided.

source

pub fn into_repo(self) -> Result<Repository, Error>

Like into_repo_with_possibly_inaccessible_worktree() but will fail if the base() cannot be read or if the worktree doesn’t exist.

Note that it won’t fail if the worktree doesn’t exist.

Trait Implementations§

source§

impl<'repo> Clone for Proxy<'repo>

source§

fn clone(&self) -> Proxy<'repo>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<'repo> Debug for Proxy<'repo>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'repo> !RefUnwindSafe for Proxy<'repo>

§

impl<'repo> !Send for Proxy<'repo>

§

impl<'repo> !Sync for Proxy<'repo>

§

impl<'repo> Unpin for Proxy<'repo>

§

impl<'repo> !UnwindSafe for Proxy<'repo>

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · 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.

§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

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

Initializes a with the given initializer. Read more
§

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

Dereferences the given pointer. Read more
§

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

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

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

impl<T> Same<T> for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

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 Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.