Skip to main content

Module config

Module config 

Source
Expand description

Features — public, additive, named-boolean capabilities used to gate optional dependencies and per-edge feature requests.

A Feature may be enabled by the package’s user or by a downstream consumer. Feature implication arrows form a directed graph; the resolver expands defaults plus user requests by transitive closure. Feature entries can enable optional dependencies (dep:foo) and request features on dependency packages (crate/feature).

All declarations live on cabin_core::Package. Selection happens through BuildConfiguration::resolve, which consumes the declarations plus a SelectionRequest (typically built from CLI flags by cabin).

Structs§

BuildConfiguration
Resolved, validated build configuration. Drives:
BuildConfigurationInput
Bundled inputs for BuildConfiguration::resolve.
Features
[features] declarations for a package.
SelectionRequest
User-supplied flag inputs that select features. Built by cabin from --features, --all-features, and --no-default-features.
ToolchainSummary
Lightweight, non-machine-specific summary of the resolved toolchain. Stored on every BuildConfiguration so the fingerprint reflects “which compiler did this build use” without pinning the local absolute path.

Enums§

FeatureEntry
Typed view of a single right-hand-side entry in a [features] list (feature_name, dep:dependency_name, or dependency_name/feature_name).
InvalidFeatureEntryKind
Why parsing a feature-list entry failed. Carried inside ValidationError::InvalidFeatureEntry so user errors keep the original string and the structural reason it was rejected.

Constants§

DEFAULT_FEATURE_KEY
The reserved feature group name. The list of names mapped to this key in [features] is the package’s “default” feature set: the Features Cabin enables when the user does not pass --no-default-features.