pub trait GitRunner: Send {
// Required method
fn execute(
&mut self,
invocation: &GitInvocation,
) -> Result<Vec<u8>, GitExecutionError>;
// Provided methods
fn execute_file(
&mut self,
_invocation: &GitInvocation,
_input: File,
_expected_len: u64,
) -> Result<Vec<u8>, GitExecutionError> { ... }
fn process_tree_is_parent_fenced(&self) -> bool { ... }
}Expand description
Injectable fixed-argv Git executor.
Required Methods§
Sourcefn execute(
&mut self,
invocation: &GitInvocation,
) -> Result<Vec<u8>, GitExecutionError>
fn execute( &mut self, invocation: &GitInvocation, ) -> Result<Vec<u8>, GitExecutionError>
Execute one bounded invocation.
§Errors
Returns a redacted process, I/O, timeout, output-limit, or exit-status failure.
Provided Methods§
Sourcefn execute_file(
&mut self,
_invocation: &GitInvocation,
_input: File,
_expected_len: u64,
) -> Result<Vec<u8>, GitExecutionError>
fn execute_file( &mut self, _invocation: &GitInvocation, _input: File, _expected_len: u64, ) -> Result<Vec<u8>, GitExecutionError>
Execute one bounded invocation with stdin streamed from an already-open regular file.
The default refuses the operation. Production and snapshot-aware test runners must prove the exact expected byte count without resolving a pathname.
§Errors
Returns a redacted process or exact-input failure.
Sourcefn process_tree_is_parent_fenced(&self) -> bool
fn process_tree_is_parent_fenced(&self) -> bool
Whether process trees spawned after a successful execute setup are killed on parent exit.
Production currently proves this only on Windows. Unix therefore keeps bounded strong missing-publication retirement disabled.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".