pub enum State {
    CreateDirectoryAndAttributesStack {
        unlink_on_collision: bool,
        attributes: Attributes,
    },
    AttributesAndIgnoreStack {
        attributes: Attributes,
        ignore: Ignore,
    },
    AttributesStack(Attributes),
    IgnoreStack(Ignore),
}

Variants§

§

CreateDirectoryAndAttributesStack

Fields

§unlink_on_collision: bool

If there is a symlink or a file in our path, try to unlink it before creating the directory.

§attributes: Attributes

State to handle attribute information

Available on crate feature attributes only.

Useful for checkout where directories need creation, but we need to access attributes as well.

§

AttributesAndIgnoreStack

Fields

§attributes: Attributes

State to handle attribute information

§ignore: Ignore

State to handle exclusion information

Available on crate feature attributes only.

Used when adding files, requiring access to both attributes and ignore information, for example during add operations.

§

AttributesStack(Attributes)

Available on crate feature attributes only.

Used when only attributes are required, typically with fully virtual worktrees.

§

IgnoreStack(Ignore)

Used when providing worktree status information.

Implementations§

source§

impl State

Initialization

source

pub fn for_checkout(unlink_on_collision: bool, attributes: Attributes) -> Self

Available on crate feature attributes only.

Configure a state to be suitable for checking out files, which only needs access to attribute files read from the index.

source

pub fn for_add(attributes: Attributes, ignore: Ignore) -> Self

Available on crate feature attributes only.

Configure a state for adding files, with support for ignore files and attribute files.

source§

impl State

Utilities

source

pub fn id_mappings_from_index( &self, index: &State, paths: &PathStorageRef, case: Case ) -> Vec<(BString, ObjectId)>

Returns a vec of tuples of relative index paths along with the best usable blob OID for either ignore or attribute files or both. This allows files to be accessed directly from the object database without the need for a worktree checkout.

Note that this method…

  • ignores entries which aren’t blobs.
  • ignores ignore entries which are not skip-worktree.
  • within merges, picks ‘our’ stage both for ignore and attribute files.
  • index is where we look for suitable files by path in order to obtain their blob hash.
  • paths is the indices storage backend for paths.
  • case determines if the search for files should be case-sensitive or not.

Trait Implementations§

source§

impl Clone for State

source§

fn clone(&self) -> State

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

Auto Trait Implementations§

§

impl RefUnwindSafe for State

§

impl Send for State

§

impl Sync for State

§

impl Unpin for State

§

impl UnwindSafe for State

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

§

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>,

§

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.