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