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}