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
#[derive(Debug, Eq, PartialEq, Copy, Clone, Hash)]
pub enum Direction {
Push,
Fetch,
}
impl Direction {
pub fn as_str(&self) -> &'static str {
match self {
Direction::Push => "push",
Direction::Fetch => "fetch",
}
}
}
mod build;
mod errors;
pub use errors::find;
pub mod name {
#[derive(Debug, thiserror::Error)]
#[error("remote names must be valid within refspecs for fetching: {name:?}")]
#[allow(missing_docs)]
pub struct Error {
source: git_refspec::parse::Error,
name: String,
}
pub fn validated(name: impl Into<String>) -> Result<String, Error> {
let name = name.into();
match git_refspec::parse(
format!("refs/heads/test:refs/remotes/{name}/test").as_str().into(),
git_refspec::parse::Operation::Fetch,
) {
Ok(_) => Ok(name),
Err(err) => Err(Error { source: err, name }),
}
}
}
pub mod init;
#[cfg(any(feature = "async-network-client", feature = "blocking-network-client"))]
pub mod fetch;
#[cfg(any(feature = "async-network-client", feature = "blocking-network-client"))]
pub mod connect;
#[cfg(any(feature = "async-network-client", feature = "blocking-network-client"))]
mod connection;
#[cfg(any(feature = "async-network-client", feature = "blocking-network-client"))]
pub use connection::{ref_map, Connection};
pub mod save;
mod access;
pub(crate) mod url;