Skip to main content

ResolvedBoundaryConfig

Struct ResolvedBoundaryConfig 

Source
pub struct ResolvedBoundaryConfig {
    pub zones: Vec<ResolvedZone>,
    pub rules: Vec<ResolvedBoundaryRule>,
    pub logical_groups: Vec<LogicalGroup>,
}
Expand description

Resolved boundary config with pre-compiled glob matchers.

Fields§

§zones: Vec<ResolvedZone>

Zones with compiled glob matchers for fast file classification.

§rules: Vec<ResolvedBoundaryRule>

Rules indexed by source zone name.

§logical_groups: Vec<LogicalGroup>

Pre-expansion logical groups captured during expand_auto_discover, preserved here for observability (fallow list --boundaries --format json). One entry per autoDiscover-bearing zone in user-declaration order. Empty unless the user (or a preset) wrote at least one autoDiscover. See LogicalGroup for the per-entry shape.

Implementations§

Source§

impl ResolvedBoundaryConfig

Source

pub fn is_empty(&self) -> bool

Whether any boundaries are configured.

Considers logical_groups too: when every autoDiscover zone produced zero children, zones is empty but the user authored a boundaries section that should still be surfaced (so fallow list --boundaries can render the Empty / InvalidPath status to the user). Without this, the whole boundaries block silently disappears from the output the moment discovery finds nothing.

Source

pub fn classify_zone(&self, relative_path: &str) -> Option<&str>

Classify a file path into a zone. Returns the first matching zone name. Path should be relative to the project root with forward slashes.

When a zone declares a root (subtree scope), the path must start with that prefix and the prefix is stripped before glob matching; otherwise the zone is skipped. Zones without a root keep project-root-relative behavior.

Source

pub fn is_import_allowed(&self, from_zone: &str, to_zone: &str) -> bool

Check if an import from from_zone to to_zone is allowed. Returns true if the import is permitted.

Source

pub fn is_type_only_allowed(&self, from_zone: &str, to_zone: &str) -> bool

Check whether a type-only import from from_zone to to_zone is permitted by the rule’s allowTypeOnly list. Only consulted by the boundary detector after is_import_allowed has already returned false; the caller is responsible for verifying the import is in fact type-only (all symbols on the edge carry the type-only flag). Returns false when no rule exists for from_zone, since rule-less zones are unrestricted and is_import_allowed short-circuits before this is called.

Trait Implementations§

Source§

impl Debug for ResolvedBoundaryConfig

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ResolvedBoundaryConfig

Source§

fn default() -> ResolvedBoundaryConfig

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more