| //! An abstraction over [fetching][fetch()] a pack from the server. |
| //! |
| //! This implementation hides the transport layer, statefulness and the protocol version to the [fetch delegate][fetch::Delegate], |
| //! the actual client implementation. |
| //! ## Feature Flags |
| #![cfg_attr( |
| all(doc, feature = "document-features"), |
| doc = ::document_features::document_features!() |
| )] |
| #![cfg_attr(all(doc, feature = "document-features"), feature(doc_cfg, doc_auto_cfg))] |
| #![deny(missing_docs, rust_2018_idioms, unsafe_code)] |
| |
| /// A selector for V2 commands to invoke on the server for purpose of pre-invocation validation. |
| #[derive(PartialEq, Eq, Debug, Hash, Ord, PartialOrd, Clone, Copy)] |
| pub enum Command { |
| /// List references. |
| LsRefs, |
| /// Fetch a pack. |
| Fetch, |
| } |
| pub mod command; |
| |
| #[cfg(feature = "async-trait")] |
| pub use async_trait; |
| #[cfg(feature = "futures-io")] |
| pub use futures_io; |
| #[cfg(feature = "futures-lite")] |
| pub use futures_lite; |
| pub use gix_credentials as credentials; |
| /// A convenience export allowing users of gix-protocol to use the transport layer without their own cargo dependency. |
| pub use gix_transport as transport; |
| pub use maybe_async; |
| |
| /// |
| #[allow(clippy::empty_docs)] |
| #[cfg(any(feature = "blocking-client", feature = "async-client"))] |
| pub mod fetch; |
| |
| #[cfg(any(feature = "blocking-client", feature = "async-client"))] |
| mod fetch_fn; |
| #[cfg(any(feature = "blocking-client", feature = "async-client"))] |
| pub use fetch_fn::{fetch, FetchConnection}; |
| |
| mod remote_progress; |
| pub use remote_progress::RemoteProgress; |
| |
| #[cfg(all(feature = "blocking-client", feature = "async-client"))] |
| compile_error!("Cannot set both 'blocking-client' and 'async-client' features as they are mutually exclusive"); |
| |
| /// |
| #[cfg(any(feature = "blocking-client", feature = "async-client"))] |
| #[allow(clippy::empty_docs)] |
| pub mod handshake; |
| #[cfg(any(feature = "blocking-client", feature = "async-client"))] |
| pub use handshake::function::handshake; |
| |
| /// |
| #[allow(clippy::empty_docs)] |
| #[cfg(any(feature = "blocking-client", feature = "async-client"))] |
| pub mod ls_refs; |
| #[cfg(any(feature = "blocking-client", feature = "async-client"))] |
| pub use ls_refs::function::ls_refs; |
| |
| mod util; |
| pub use util::agent; |
| #[cfg(any(feature = "blocking-client", feature = "async-client"))] |
| pub use util::indicate_end_of_interaction; |