pub enum CandidateSource {
StagedAgainstHead,
StagedAgainstCommit(ObjectId),
Committed(ObjectId),
}Expand description
What:
Which Git state a version lists,
and what it is compared with.
#[derive(...)] generates cloning,
debug printing and ==.
Why:
A commit being prepared is judged by what is staged;
a landed commit by what
it changed.
Naming the comparison makes the version reproducible.
In TS you’d write (pseudocode):
type CandidateSource = { kind: 'staged-against-head' } | { kind: 'staged-against-commit'; commit: ObjectId } | { kind: 'committed'; commit: ObjectId };Variants§
StagedAgainstHead
The index compared with HEAD;
every index entry when no commit exists yet.
StagedAgainstCommit(ObjectId)
The index compared with one named commit, such as a transaction’s recorded base.
Committed(ObjectId)
One commit compared with each of its parents; every entry of a root commit.
Trait Implementations§
Source§impl Clone for CandidateSource
impl Clone for CandidateSource
Source§impl Debug for CandidateSource
impl Debug for CandidateSource
impl Eq for CandidateSource
Source§impl PartialEq for CandidateSource
impl PartialEq for CandidateSource
impl StructuralPartialEq for CandidateSource
Auto Trait Implementations§
impl Freeze for CandidateSource
impl RefUnwindSafe for CandidateSource
impl Send for CandidateSource
impl Sync for CandidateSource
impl Unpin for CandidateSource
impl UnsafeUnpin for CandidateSource
impl UnwindSafe for CandidateSource
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§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