/// The name of the `git` client in a format suitable for presentation to a `git` server, using `name` as user-defined portion of the value. pub fn agent(name: impl Into) -> String { let mut name = name.into(); if !name.starts_with("git/") { name.insert_str(0, "git/"); } name } /// Send a message to indicate the remote side that there is nothing more to expect from us, indicating a graceful shutdown. #[cfg(any(feature = "blocking-client", feature = "async-client"))] #[maybe_async::maybe_async] pub async fn indicate_end_of_interaction( mut transport: impl gix_transport::client::Transport, ) -> Result<(), gix_transport::client::Error> { // An empty request marks the (early) end of the interaction. Only relevant in stateful transports though. if transport.connection_persists_across_multiple_requests() { transport .request( gix_transport::client::WriteMode::Binary, gix_transport::client::MessageKind::Flush, )? .into_read() .await?; } Ok(()) }