pub trait DirectoryPutter: Send {
// Required methods
fn put<'life0, 'async_trait>(
&'life0 mut self,
directory: Directory,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn close<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<B3Digest, Error>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}
Expand description
Provides a handle to put a closure of connected Directory elements.
The consumer can periodically call DirectoryPutter::put, starting from the leaves. Once the root is reached, DirectoryPutter::close can be called to retrieve the root digest (or an error).
DirectoryPutters might be created without a single DirectoryPutter::put, and then dropped without calling DirectoryPutter::close, for example when ingesting a path that ends up not pointing to a directory, but a single file or symlink.
Required Methods§
sourcefn put<'life0, 'async_trait>(
&'life0 mut self,
directory: Directory,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn put<'life0, 'async_trait>(
&'life0 mut self,
directory: Directory,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Put a individual Directory into the store.
Error semantics and behaviour is up to the specific implementation of
this trait.
Due to bursting, the returned error might refer to an object previously
sent via put
.
sourcefn close<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<B3Digest, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn close<'life0, 'async_trait>(
&'life0 mut self,
) -> Pin<Box<dyn Future<Output = Result<B3Digest, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Close the stream, and wait for any errors. If there’s been any invalid Directory message uploaded, and error must be returned.