pub trait Repository {
fn save<'life0, 'async_trait>(
&'life0 self,
id: String,
stream: Box<dyn Stream<Item = Result<Bytes, Error>> + Send + Sync + Unpin + 'static>
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn write<'life0, 'async_trait>(
&'life0 self,
id: String,
range: (Bound<u64>, Bound<u64>),
body: Bytes
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
blob_id: &'life1 str,
range: Option<(Bound<u64>, Bound<u64>)>
) -> Pin<Box<dyn Future<Output = Result<ChunkedStreamInfo>> + Send + 'async_trait>>
where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn delete<'life0, 'life1, 'async_trait>(
&'life0 self,
blob_id: &'life1 str
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait;
fn fsync<'life0, 'async_trait>(
&'life0 self,
id: String
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
fn available_space<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<Option<u64>>> + Send + 'async_trait>>
where
'life0: 'async_trait,
Self: 'async_trait;
}