Skip to main content

Module release

Module release 

Source
Expand description

The ReleaseProvider trait, value types, error enum, and factory-registration primitives.

Backends register a factory via linkme::distributed_slice, which is resolved at link time — no runtime init() ceremony. Downstream tools that want a custom backend declare their own RegisteredProvider and link against this crate.

Structs§

RegisteredProvider
A single registered backend. Each built-in and downstream-custom backend contributes one of these to RELEASE_PROVIDERS.
Release
A single release, as observed from a source.
ReleaseAsset
A single downloadable artefact attached to a Release.

Enums§

ProviderError
Every failure mode a ReleaseProvider can surface.

Statics§

RELEASE_PROVIDERS
Distributed slice of built-in and downstream-custom providers.

Traits§

ProviderRegistration
Trait implemented by each registered provider’s registration hook.
ReleaseProvider
Read-only release-source abstraction.

Functions§

lookup
Return the ProviderFactory for source_type, or None if no backend has registered for that discriminator.
registered_types
Return a sorted, de-duplicated list of registered source_type discriminators. Used to generate user-facing diagnostics when the caller specified an unknown backend.

Type Aliases§

ProviderFactory
Signature of a provider factory. Accepts a parsed ReleaseSourceConfig plus an optional bearer token and returns an Arc<dyn ReleaseProvider> (or a validation error).