pub struct SpecInheritanceResolver;Expand description
Manages hierarchical spec resolution with explicit precedence
Implementations§
Source§impl SpecInheritanceResolver
impl SpecInheritanceResolver
Sourcepub fn resolve(specs: &[Spec]) -> Result<Vec<Spec>, SpecError>
pub fn resolve(specs: &[Spec]) -> Result<Vec<Spec>, SpecError>
Resolve spec hierarchy (project > feature > task)
Organizes specs by their precedence level and returns them in order from highest precedence (project level, 0) to lowest (task level, 2).
§Arguments
specs- Collection of specs to resolve
§Returns
Ok(Vec<Spec>)- Specs sorted by precedence level (highest first)Err(SpecError)- If circular dependencies or conflicts are detected
Sourcepub fn merge(parent: &Spec, child: &Spec) -> Result<Spec, SpecError>
pub fn merge(parent: &Spec, child: &Spec) -> Result<Spec, SpecError>
Merge two specs with precedence rules
Merges a child spec into a parent spec, with the parent taking precedence. Higher precedence level specs override lower precedence level specs.
§Arguments
parent- Parent spec (higher precedence)child- Child spec (lower precedence)
§Returns
Ok(Spec)- Merged spec with parent values taking precedenceErr(SpecError)- If merge would create conflicts
Sourcepub fn validate_chain(specs: &[Spec]) -> Result<(), SpecError>
pub fn validate_chain(specs: &[Spec]) -> Result<(), SpecError>
Validate inheritance chain for conflicts and circular dependencies
Checks that:
- No circular dependencies exist
- Precedence levels are consistent
- Parent-child relationships are valid
§Arguments
specs- Collection of specs to validate
§Returns
Ok(())- If chain is validErr(SpecError)- If circular dependencies or conflicts are detected
Auto Trait Implementations§
impl Freeze for SpecInheritanceResolver
impl RefUnwindSafe for SpecInheritanceResolver
impl Send for SpecInheritanceResolver
impl Sync for SpecInheritanceResolver
impl Unpin for SpecInheritanceResolver
impl UnwindSafe for SpecInheritanceResolver
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more