pub mod local_fs;
pub mod server;
#[cfg(feature = "server")]
pub mod server_types;
use crate::error::SyncError;
pub trait SyncBackend {
fn fetch(&self, tool: &str, path: &str) -> Result<Vec<u8>, SyncError>;
fn push(&self, tool: &str, path: &str, data: &[u8]) -> Result<(), SyncError>;
fn fetch_merkle(&self) -> Result<Option<Vec<u8>>, SyncError>;
fn push_merkle(&self, data: &[u8]) -> Result<(), SyncError>;
fn is_reachable(&self) -> bool;
}