-
-
Notifications
You must be signed in to change notification settings - Fork 470
Expand file tree
/
Copy pathlib.rs
More file actions
77 lines (67 loc) · 2.4 KB
/
lib.rs
File metadata and controls
77 lines (67 loc) · 2.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
//! An abstraction over [fetching][fetch()] a pack from the server.
//!
//! Generally, there is the following order of operations.
//!
//! * create a `Transport`, either blocking or async
//! * perform a [`handshake()`]
//! * execute a [`Command`]
//! - [list references](LsRefsCommand)
//! - create a mapping between [refspecs and references](fetch::RefMap)
//! - [receive a pack](fetch())
//!
//! ## Feature Flags
#![cfg_attr(
all(doc, feature = "document-features"),
doc = ::document_features::document_features!()
)]
#![cfg_attr(all(doc, feature = "document-features"), feature(doc_cfg))]
#![deny(missing_docs, rust_2018_idioms, unsafe_code)]
/// A function that performs a given credential action, trying to obtain credentials for an operation that needs it.
///
/// Useful for both `fetch` and `push`.
#[cfg(feature = "handshake")]
pub type AuthenticateFn<'a> = Box<dyn FnMut(gix_credentials::helper::Action) -> gix_credentials::protocol::Result + 'a>;
/// 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-client")]
pub use async_trait;
#[cfg(feature = "async-client")]
pub use futures_io;
#[cfg(feature = "async-client")]
pub use futures_lite;
#[cfg(feature = "handshake")]
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;
///
pub mod fetch;
#[cfg(any(feature = "blocking-client", feature = "async-client"))]
pub use fetch::function::fetch;
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");
///
pub mod handshake;
#[cfg(any(feature = "blocking-client", feature = "async-client"))]
#[cfg(feature = "handshake")]
pub use handshake::function::handshake;
#[cfg(feature = "handshake")]
pub use handshake::hero::Handshake;
///
pub mod ls_refs;
#[cfg(any(feature = "blocking-client", feature = "async-client"))]
pub use ls_refs::function::LsRefsCommand;
mod util;
pub use util::*;
#[cfg(feature = "serve")]
///
pub mod serve;