f7bfb60
//! lfs Operation method trait for the module.
use crate::lfs::types::{
LfsBatchRequest, LfsBatchResponse, LfsLock, LfsLockList, LfsObject, LfsUploadResult,
};
/// LFS Operation trait.
pub trait LfsOps {
/// Handle an LFS batch request.
fn lfs_handle_batch(&self, req: &LfsBatchRequest) -> Result<LfsBatchResponse, crate::Error>;
/// Upload an LFS object.
fn lfs_upload(&self, obj: &LfsObject) -> Result<LfsUploadResult, crate::Error>;
/// Download an LFS object (returns an href).
fn lfs_download(&self, obj: &LfsObject) -> Result<String, crate::Error>;
/// Verify an LFS object.
fn lfs_verify(&self, obj: &LfsObject) -> Result<(), crate::Error>;
/// Acquire a lock.
fn lfs_lock(&self, path: &str, owner: &str) -> Result<LfsLock, crate::Error>;
/// Release a lock.
fn lfs_unlock(&self, path: &str, owner: &str) -> Result<LfsLock, crate::Error>;
/// List locks.
fn lfs_list_locks(&self, cursor: Option<&str>, limit: u64)
-> Result<LfsLockList, crate::Error>;
/// Clean up unreferenced objects.
fn lfs_cleanup_unreferenced(&self) -> Result<u64, crate::Error>;
}