//! 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; /// Fetch remote updates. fn remote_fetch(&self, config: &RemoteConfig) -> Result; /// Push to a remote. fn remote_push( &self, config: &RemoteConfig, refspec: Option<&str>, ) -> Result; /// 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>; }