pub struct CandidateRecord {
pub path: Vec<u8>,
pub mode: CandidateMode,
pub change: CandidateChange,
pub object: Option<ObjectId>,
}Expand description
What:
One listed path.
Vec<u8> is an owned byte list (sibling String would require UTF-8).
Option<ObjectId> is “an object name or nothing”.
Why:
Git pathnames are arbitrary bytes on Unix and must round-trip exactly.
A
deleted path has no object on the candidate side,
which the type states
instead of carrying Git’s all-zero placeholder name.
In TS you’d write (pseudocode):
type CandidateRecord = { path: Buffer; mode: CandidateMode; change: CandidateChange; object?: ObjectId };Fields§
§path: Vec<u8>Repository-relative pathname with / separators,
exactly as Git printed it.
mode: CandidateModeMode on the candidate side, or the baseline’s mode for a deleted path.
change: CandidateChangeChange against the baseline.
object: Option<ObjectId>Object on the candidate side; absent for a deleted path.
Trait Implementations§
Source§impl Clone for CandidateRecord
impl Clone for CandidateRecord
Source§impl Debug for CandidateRecord
impl Debug for CandidateRecord
impl Eq for CandidateRecord
Source§impl PartialEq for CandidateRecord
impl PartialEq for CandidateRecord
impl StructuralPartialEq for CandidateRecord
Auto Trait Implementations§
impl Freeze for CandidateRecord
impl RefUnwindSafe for CandidateRecord
impl Send for CandidateRecord
impl Sync for CandidateRecord
impl Unpin for CandidateRecord
impl UnsafeUnpin for CandidateRecord
impl UnwindSafe for CandidateRecord
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