summaryrefslogtreecommitdiffstats
path: root/vendor/gix/src/remote/connection/mod.rs
blob: 09943ecc4ad9fd3bb574533085668335fe3c0d27 (plain)
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
use crate::Remote;

pub(crate) struct HandshakeWithRefs {
    outcome: gix_protocol::handshake::Outcome,
    refs: Vec<gix_protocol::handshake::Ref>,
}

/// A function that performs a given credential action, trying to obtain credentials for an operation that needs it.
pub type AuthenticateFn<'a> = Box<dyn FnMut(gix_credentials::helper::Action) -> gix_credentials::protocol::Result + 'a>;

/// A type to represent an ongoing connection to a remote host, typically with the connection already established.
///
/// It can be used to perform a variety of operations with the remote without worrying about protocol details,
/// much like a remote procedure call.
pub struct Connection<'a, 'repo, T, P> {
    pub(crate) remote: &'a Remote<'repo>,
    pub(crate) authenticate: Option<AuthenticateFn<'a>>,
    pub(crate) transport_options: Option<Box<dyn std::any::Any>>,
    pub(crate) transport: T,
    pub(crate) progress: P,
}

mod access;

///
pub mod ref_map;

///
pub mod fetch;