pub trait AsyncManifestStoreScan: AsyncManifestStore {
// Required method
async fn list_roots(&self) -> Result<Vec<NamedRootManifest>, Self::Error>;
// Provided method
async fn list_roots_page(
&self,
prefix: &[u8],
after: Option<&[u8]>,
limit: usize,
) -> Result<NamedRootManifestPage, Self::Error> { ... }
}Expand description
Async manifest stores that can enumerate durable named roots.
Scanning remains optional because point lookups and compare-and-swap are enough for normal publish/fetch paths, while retention and GC need listing.
Required Methods§
Sourceasync fn list_roots(&self) -> Result<Vec<NamedRootManifest>, Self::Error>
async fn list_roots(&self) -> Result<Vec<NamedRootManifest>, Self::Error>
List all durable named root manifests.
Provided Methods§
Sourceasync fn list_roots_page(
&self,
prefix: &[u8],
after: Option<&[u8]>,
limit: usize,
) -> Result<NamedRootManifestPage, Self::Error>
async fn list_roots_page( &self, prefix: &[u8], after: Option<&[u8]>, limit: usize, ) -> Result<NamedRootManifestPage, Self::Error>
List one bounded raw-name page under prefix, strictly after after.
Backends should override this method with a native bounded range query. The default preserves compatibility but may materialize the full list.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".