pub struct GitUrl { /* private fields */ }
Expand description
Represents a parsed Git repository url
GitUrl is an input url used by git.
Parsing of the url inspired by rfc3986, but does not strictly cover the spec
Optional, but by default, uses the url
crate to perform a final validation of the parsing effort
Implementations§
Source§impl GitUrl
impl GitUrl
Sourcepub fn password(&self) -> Option<&str>
pub fn password(&self) -> Option<&str>
password userinfo provided with user
(i.e. user
:password
@…)
Sourcepub fn parse(input: &str) -> Result<Self, GitUrlParseError>
pub fn parse(input: &str) -> Result<Self, GitUrlParseError>
Returns a Result<GitUrl>
after parsing input
for metadata
let http_url = GitUrl::parse("https://github.com/tjtelan/git-url-parse-rs.git")?;
let ssh_url = GitUrl::parse("git@github.com:tjtelan/git-url-parse-rs.git")?;
Sourcepub fn parse_to_url(input: &str) -> Result<Url, GitUrlParseError>
pub fn parse_to_url(input: &str) -> Result<Url, GitUrlParseError>
Normalize input into form that can be used by Url::parse
use git_url_parse::GitUrl;
#[cfg(feature = "url")]
use url::Url;
fn main() -> Result<(), git_url_parse::GitUrlParseError> {
let ssh_url = GitUrl::parse_to_url("git@github.com:tjtelan/git-url-parse-rs.git")?;
assert_eq!(ssh_url.scheme(), "ssh");
assert_eq!(ssh_url.username(), "git");
assert_eq!(ssh_url.host_str(), Some("github.com"));
assert_eq!(ssh_url.path(), "/tjtelan/git-url-parse-rs.git");
Ok(())
}
Sourcepub fn provider_info<T>(&self) -> Result<T, GitUrlParseError>
pub fn provider_info<T>(&self) -> Result<T, GitUrlParseError>
use git_url_parse::GitUrl;
use git_url_parse::types::provider::GenericProvider;
let ssh_url = GitUrl::parse("git@github.com:tjtelan/git-url-parse-rs.git")?;
let provider : GenericProvider = ssh_url.provider_info()?;
Trait Implementations§
Source§impl GitProvider<GitUrl, GitUrlParseError> for AzureDevOpsProvider
impl GitProvider<GitUrl, GitUrlParseError> for AzureDevOpsProvider
Source§fn from_git_url(url: &GitUrl) -> Result<Self, GitUrlParseError>
fn from_git_url(url: &GitUrl) -> Result<Self, GitUrlParseError>
Trait method called by
GitUrl::provider_info()
Read moreSource§impl GitProvider<GitUrl, GitUrlParseError> for GenericProvider
impl GitProvider<GitUrl, GitUrlParseError> for GenericProvider
Source§fn from_git_url(url: &GitUrl) -> Result<Self, GitUrlParseError>
fn from_git_url(url: &GitUrl) -> Result<Self, GitUrlParseError>
Trait method called by
GitUrl::provider_info()
Read moreSource§impl GitProvider<GitUrl, GitUrlParseError> for GitLabProvider
impl GitProvider<GitUrl, GitUrlParseError> for GitLabProvider
Source§fn from_git_url(url: &GitUrl) -> Result<Self, GitUrlParseError>
fn from_git_url(url: &GitUrl) -> Result<Self, GitUrlParseError>
Trait method called by
GitUrl::provider_info()
Read moreimpl Eq for GitUrl
impl StructuralPartialEq for GitUrl
Auto Trait Implementations§
impl Freeze for GitUrl
impl RefUnwindSafe for GitUrl
impl Send for GitUrl
impl Sync for GitUrl
impl Unpin for GitUrl
impl UnwindSafe for GitUrl
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more