mod util; pub mod memory; pub mod sled; use crate::Error; pub use self::memory::MemoryChunkService; pub use self::sled::SledChunkService; pub use self::util::read_all_and_chunk; pub use self::util::update_hasher; pub use self::util::upload_chunk; /// The base trait all ChunkService services need to implement. /// It allows checking for the existence, download and upload of chunks. /// It's usually used after consulting a [crate::blobservice::BlobService] for /// chunking information. pub trait ChunkService { /// check if the service has a chunk, given by its digest. fn has(&self, digest: &[u8]) -> Result; /// retrieve a chunk by its digest. Implementations MUST validate the digest /// matches. fn get(&self, digest: &[u8]) -> Result>, Error>; /// insert a chunk. returns the digest of the chunk, or an error. fn put(&self, data: Vec) -> Result, Error>; }