Skip to content
Clone
81edfe7
29 lines 963 B Rust
//! remote Operation method trait for the module.
use crate::remote::types::{FetchResult, ImportResult, MirrorType, PushResult, RemoteConfig};
/// Operation trait for remote/mirror operations.
pub trait RemoteOps {
/// Clone/import a bare repository from a remote path.
fn remote_clone_import(
&self,
src: &str,
config: &RemoteConfig,
) -> Result<ImportResult, crate::Error>;
/// Fetch remote updates.
fn remote_fetch(&self, config: &RemoteConfig) -> Result<FetchResult, crate::Error>;
/// Push to a remote.
fn remote_push(
&self,
config: &RemoteConfig,
refspec: Option<&str>,
) -> Result<PushResult, crate::Error>;
/// Set a mirror.
fn remote_set_mirror(
&self,
mirror_type: MirrorType,
config: &RemoteConfig,
) -> Result<(), crate::Error>;
/// Remove a remote.
fn remote_remove_remote(&self, name: &str) -> Result<(), crate::Error>;
}