pub async fn run<R, W>(
remote: RemoteUrl,
store: Arc<dyn ObjectStore>,
engine: StorageEngine,
reader: R,
writer: W,
reload: Option<ReloadHandle>,
repo_dir: PathBuf,
) -> Result<(), ProtocolError>Expand description
Run the helper REPL until stdin closes (clean exit) or the writer
breaks (BrokenPipe — also a clean exit).
repo_dir is the local repository the helper is operating against;
the parallel fetch path uses it as the cwd for git bundle unbundle.
§Errors
Returns ProtocolError::Io on transport failure,
ProtocolError::InvalidCommand for an unrecognised command, and
ProtocolError::List / ProtocolError::Fetch /
ProtocolError::Push for backend errors in the respective
operations.
engine is the resolved engine returned by backend::build.
Threading it through the call chain (rather than re-reading
FORMAT here) avoids a duplicate round trip per helper invocation.