pub enum Action {
Forward {
real_git: PathBuf,
arguments: Vec<OsString>,
overlay: Vec<(OsString, OsString)>,
stderr: String,
},
ForwardCoordinated {
forward: Box<CoordinatedForward>,
stderr: String,
},
ForwardSettled {
real_git: PathBuf,
arguments: Vec<OsString>,
overlay: Vec<(OsString, OsString)>,
copy: Box<CopyFacts>,
stderr: String,
},
Exit {
code: i32,
stdout: String,
stderr: String,
},
}Expand description
What:
What the executable must do for one invocation.
Vec<OsString> is an owned argument list;
Vec<(OsString, OsString)> is an
owned list of name/value pairs;
String is owned UTF-8 text.
Why:
The executable performs exactly one of these:
become Git,
or print and exit.
In TS you’d write (pseudocode):
type Action = { kind: 'forward'; realGit: string; args: string[]; overlay: [string, string][]; stderr: string }
| { kind: 'exit'; code: number; stdout: string; stderr: string };Variants§
Forward
Become real Git.
Fields
ForwardCoordinated
Forward an index writer under its landing lock: coordinate, run Git as a child, release.
Fields
§
forward: Box<CoordinatedForward>What the coordinated run needs.
ForwardSettled
Forward a command that the linked-worktree copy settles: run Git as a child that carries the settlement lease, recover an interrupted copy first, copy the ignored state into the worktrees the command created.
Fields
Exit
Stop without running the caller’s command.
Trait Implementations§
impl Eq for Action
impl StructuralPartialEq for Action
Auto Trait Implementations§
impl Freeze for Action
impl RefUnwindSafe for Action
impl Send for Action
impl Sync for Action
impl Unpin for Action
impl UnsafeUnpin for Action
impl UnwindSafe for Action
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