Skip to main content

RefReader

Trait RefReader 

Source
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§

Source

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")?;
Source

fn list_refs(&self, glob: &str) -> Result<Vec<String>, StorageError>

Lists all reference names matching a glob pattern.

Args:

  • glob: A glob pattern to match against reference names.

Usage:

let refs = reader.list_refs("refs/auths/devices/nodes/*/signatures")?;

Implementors§