pub trait RefReader: Send + Sync {
// Required methods
fn resolve_ref(&self, refname: &str) -> Result<Vec<u8>, StorageError>;
fn list_refs(&self, glob: &str) -> Result<Vec<String>, StorageError>;
}Expand description
Reads abstract references that map names to opaque identifiers.
In a Git-backed implementation, these correspond to Git refs pointing at commit OIDs. The domain treats them as opaque byte sequences without assuming Git semantics.
Usage:
ⓘ
use auths_core::ports::storage::RefReader;
fn current_tip(reader: &dyn RefReader, refname: &str) -> Vec<u8> {
reader.resolve_ref(refname).unwrap()
}Required Methods§
Sourcefn resolve_ref(&self, refname: &str) -> Result<Vec<u8>, StorageError>
fn resolve_ref(&self, refname: &str) -> Result<Vec<u8>, StorageError>
Resolves a reference name to its current target bytes.
Args:
refname: The reference name to resolve (e.g.,"refs/auths/registry").
Usage:
ⓘ
let oid_bytes = reader.resolve_ref("refs/auths/registry")?;