Skip to main content

configbuilder_pattern_loader/
section_loader_bound.rs

1use crate::{
2    FeatureRecord, FeatureRecordBuilder, FeatureRegistry, FeatureSummary, OverrideSource, Topology,
3};
4
5/// API contract marker for the reference section loader.
6///
7/// The concrete implementor is [`crate::DefaultLoader`].
8pub trait SectionLoaderBound {
9    /// Feature outcome record type produced by feature loading.
10    type FeatureRecord: Into<FeatureRecord>;
11
12    /// Builder for feature outcome records.
13    type FeatureRecordBuilder: Into<FeatureRecordBuilder>;
14
15    /// Registry collecting feature outcome records.
16    type FeatureRegistry: Into<FeatureRegistry>;
17
18    /// Summary view produced by the registry.
19    type FeatureSummary: Into<FeatureSummary>;
20
21    /// Source of a feature state override.
22    type OverrideSource: Into<OverrideSource>;
23
24    /// Dependency ordering resolver used by feature macros.
25    type Topology: Into<Topology>;
26}