pub struct RemoteRepo {
pub url: String,
pub provider: GitProvider,
pub owner: Option<String>,
pub name: String,
pub branch: Option<String>,
pub reference: Option<String>,
pub subdir: Option<String>,
}Expand description
Parsed remote repository URL
Fields§
§url: StringOriginal URL
provider: GitProviderGit provider
owner: Option<String>Repository owner/organization
name: StringRepository name
branch: Option<String>Branch to clone (None = default branch)
reference: Option<String>Specific commit/tag to checkout
subdir: Option<String>Subdirectory to extract (sparse checkout)
Implementations§
Source§impl RemoteRepo
impl RemoteRepo
Sourcepub fn parse(input: &str) -> Result<Self, RemoteError>
pub fn parse(input: &str) -> Result<Self, RemoteError>
Parse a remote URL into a RemoteRepo Supports formats:
- https://github.com/owner/repo
- https://github.com/owner/repo/tree/branch
- https://github.com/owner/repo/tree/branch/subdir
- github:owner/repo
- owner/repo (assumes GitHub)
- git@github.com:owner/repo.git
Sourcepub fn clone_with_cleanup(&self) -> Result<(PathBuf, TempDir), RemoteError>
pub fn clone_with_cleanup(&self) -> Result<(PathBuf, TempDir), RemoteError>
Clone the repository to a temporary directory with RAII cleanup Returns (path_to_repo, temp_dir_handle) - keep the TempDir alive to prevent cleanup
Sourcepub fn clone(&self, target_dir: Option<&Path>) -> Result<PathBuf, RemoteError>
pub fn clone(&self, target_dir: Option<&Path>) -> Result<PathBuf, RemoteError>
Clone the repository to a temporary directory (legacy method without RAII cleanup)
§Warning
This method does not clean up the temp directory automatically.
Consider using clone_with_cleanup() instead for automatic cleanup.
§Public API Note
This method is part of the public library API for users who need manual control
over the cloned directory lifecycle. The CLI uses clone_with_cleanup() internally.
Sourcepub fn sparse_clone(
&self,
paths: &[&str],
target_dir: Option<&Path>,
) -> Result<PathBuf, RemoteError>
pub fn sparse_clone( &self, paths: &[&str], target_dir: Option<&Path>, ) -> Result<PathBuf, RemoteError>
Clone with sparse checkout (only fetch specified paths)
This is useful for very large repositories where you only need a subset of files. Uses Git’s sparse checkout feature to minimize download size.
§Safety
Will only delete existing directories if:
- The directory is inside system temp directory, OR
- The directory contains an
.infiniloom-clonemarker file, OR - The directory is empty
§Public API Note
This method is part of the public library API. The CLI does not currently use sparse checkout, but it’s available for library users who need it.
Sourcepub fn is_remote_url(input: &str) -> bool
pub fn is_remote_url(input: &str) -> bool
Check if a URL is a remote repository URL
Trait Implementations§
Source§impl Clone for RemoteRepo
impl Clone for RemoteRepo
Source§fn clone(&self) -> RemoteRepo
fn clone(&self) -> RemoteRepo
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for RemoteRepo
impl RefUnwindSafe for RemoteRepo
impl Send for RemoteRepo
impl Sync for RemoteRepo
impl Unpin for RemoteRepo
impl UnwindSafe for RemoteRepo
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the foreground set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red() and
green(), which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg():
use yansi::{Paint, Color};
painted.fg(Color::White);Set foreground color to white using white().
use yansi::Paint;
painted.white();Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self with the background set to
value.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red() and
on_green(), which have the same functionality but
are pithier.
§Example
Set background color to red using fg():
use yansi::{Paint, Color};
painted.bg(Color::Red);Set background color to red using on_red().
use yansi::Paint;
painted.on_red();Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute value.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold() and
underline(), which have the same functionality
but are pithier.
§Example
Make text bold using attr():
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);Make text bold using using bold().
use yansi::Paint;
painted.bold();Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi Quirk value.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask() and
wrap(), which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk():
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);Enable wrapping using wrap().
use yansi::Paint;
painted.wrap();Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting() due to conflicts with Vec::clear().
The clear() method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted only when both stdout and stderr are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);