use crate::{ error::OperationError, object::{GiteratedObject, Object, ObjectRequestError}, operation::GiteratedOperation, }; use std::fmt::Debug; #[async_trait::async_trait] pub trait ObjectBackend: Send + Sync + Sized + Clone { async fn object_operation( &self, object: O, operation: D, ) -> Result> where O: GiteratedObject + Debug, D: GiteratedOperation + Debug; async fn get_object( &self, object_str: &str, ) -> Result, OperationError>; }