Skip to main content

Catalog

Struct Catalog 

Source
pub struct Catalog { /* private fields */ }
Expand description

A local block catalog rooted at a directory. This type has no opinion about environment variables or home directories — the caller (the CLI) decides where root points.

Implementations§

Source§

impl Catalog

Source

pub fn open(root: impl Into<PathBuf>) -> Self

Open (without yet creating on disk) a catalog rooted at root.

Source

pub fn add( &self, name_version: &str, artifact_path: &Path, engine: &Engine, ) -> Result<AddOutcome, CatalogError>

Catalog the artifact at artifact_path under name_version.

engine is only used if the artifact turns out to be a wasm block — a bundle’s signature is read straight from its own manifest, never wasm-instantiated (bundle bytes are a custom container, not a wasm module; instantiating them would simply fail to parse).

Source

pub fn list(&self) -> Result<Vec<(String, Entry)>, CatalogError>

List every cataloged entry, in deterministic (sorted-by-name@version) order.

Source

pub fn show(&self, name_version: &str) -> Result<Entry, CatalogError>

Look up one entry’s cached Entry by exact, case-sensitive name@version — a catalog name is an opaque string, like a version is; no case-folding, no normalization.

Source

pub fn read_blob(&self, entry: &Entry) -> Result<Vec<u8>, CatalogError>

Read an entry’s raw bytes back out of the blob store. The catalog’s only way to get from an Entry to actual artifact bytes — blobs/ stays an implementation detail, same as add() already hides write_blob.

Source

pub fn rm(&self, name_version: &str) -> Result<(), CatalogError>

Remove a name@version from the index. The blob it pointed at is left on disk — no garbage collection in v1 (an orphaned blob is wasted space, not a correctness problem; see the design doc).

Source

pub fn resolve( &self, s: &str, context: ResolutionContext, ) -> Result<Resolved, CatalogError>

Resolve one pipeline entry string per the catalog spec’s three-step algorithm: direct path/.wasm/.cfbundle first, then an exact catalog lookup if @version is present, then latest-by-created_at if it’s not and context allows an unqualified name.

A compiled-artifact suffix (.wasm or .cfbundle) is always treated as Direct, even when nothing actually exists at that path — a genuinely missing artifact should fail with a clear “no such file”, not be silently reinterpreted as a catalog name that happens to contain a . in it. Both suffixes get identical treatment here: pipeline::resolve_and_load’s own decision to prefer a joined path for one of these suffixes (even before checking existence) is only correct if this function honors the same suffixes the same way.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more