pub trait TargetRepository {
// Required methods
fn start_import(
&mut self,
git_active_branches: Option<usize>,
default_branch: Option<&str>
) -> Result<(&mut dyn Write, Option<RepositorySavedState>, String), TargetRepositoryError>;
fn finish(&mut self) -> Result<(), TargetRepositoryError>;
// Provided methods
fn verify(
&self,
_verified_repo: &str,
_subfolder: Option<&str>
) -> Result<(), TargetRepositoryError> { ... }
fn save_state(
&self,
_state: RepositorySavedState
) -> Result<(), TargetRepositoryError> { ... }
fn get_saved_state(&self) -> Option<&RepositorySavedState> { ... }
fn remote_list(&self) -> Result<HashSet<String>, TargetRepositoryError> { ... }
fn remote_add(
&self,
_name: &str,
_url: &str
) -> Result<(), TargetRepositoryError> { ... }
fn checkout(&self, _branch: &str) -> Result<(), TargetRepositoryError> { ... }
fn fetch_all(&self) -> Result<(), TargetRepositoryError> { ... }
fn merge_unrelated(
&self,
_branches: &[&str]
) -> Result<(), TargetRepositoryError> { ... }
}