pub struct FallowConfig {Show 34 fields
pub schema: Option<String>,
pub extends: Vec<String>,
pub entry: Vec<String>,
pub ignore_patterns: Vec<String>,
pub framework: Vec<ExternalPluginDef>,
pub workspaces: Option<WorkspaceConfig>,
pub ignore_dependencies: Vec<String>,
pub ignore_unresolved_imports: Vec<String>,
pub ignore_exports: Vec<IgnoreExportRule>,
pub ignore_catalog_references: Vec<IgnoreCatalogReferenceRule>,
pub ignore_dependency_overrides: Vec<IgnoreDependencyOverrideRule>,
pub ignore_exports_used_in_file: IgnoreExportsUsedInFileConfig,
pub ignore_decorators: Vec<String>,
pub used_class_members: Vec<UsedClassMemberRule>,
pub duplicates: DuplicatesConfig,
pub health: HealthConfig,
pub rules: RulesConfig,
pub boundaries: BoundaryConfig,
pub flags: FlagsConfig,
pub security: SecurityConfig,
pub fix: FixConfig,
pub resolve: ResolveConfig,
pub production: ProductionConfig,
pub plugins: Vec<String>,
pub dynamically_loaded: Vec<String>,
pub overrides: Vec<ConfigOverride>,
pub codeowners: Option<String>,
pub public_packages: Vec<String>,
pub regression: Option<RegressionConfig>,
pub audit: AuditConfig,
pub sealed: bool,
pub include_entry_exports: bool,
pub auto_imports: bool,
pub cache: CacheConfig,
}Fields§
§schema: Option<String>§extends: Vec<String>§entry: Vec<String>§ignore_patterns: Vec<String>§framework: Vec<ExternalPluginDef>§workspaces: Option<WorkspaceConfig>§ignore_dependencies: Vec<String>§ignore_unresolved_imports: Vec<String>§ignore_exports: Vec<IgnoreExportRule>§ignore_catalog_references: Vec<IgnoreCatalogReferenceRule>§ignore_dependency_overrides: Vec<IgnoreDependencyOverrideRule>§ignore_exports_used_in_file: IgnoreExportsUsedInFileConfig§ignore_decorators: Vec<String>§used_class_members: Vec<UsedClassMemberRule>§duplicates: DuplicatesConfig§health: HealthConfig§rules: RulesConfig§boundaries: BoundaryConfig§flags: FlagsConfig§security: SecurityConfig§fix: FixConfig§resolve: ResolveConfig§production: ProductionConfig§plugins: Vec<String>§dynamically_loaded: Vec<String>§overrides: Vec<ConfigOverride>§codeowners: Option<String>§public_packages: Vec<String>§regression: Option<RegressionConfig>§audit: AuditConfig§sealed: bool§include_entry_exports: bool§auto_imports: bool§cache: CacheConfigImplementations§
Source§impl FallowConfig
impl FallowConfig
Sourcepub fn load(path: &Path) -> Result<Self, Report>
pub fn load(path: &Path) -> Result<Self, Report>
Load config from a fallow config file (TOML or JSON/JSONC).
The format is detected from the file extension:
.toml→ TOML.json→ JSON (with JSONC comment stripping)
Supports extends for config inheritance. Extended configs are loaded
and deep-merged before this config’s values are applied.
User-supplied glob patterns (entry, ignorePatterns,
dynamicallyLoaded, duplicates.ignore, health.ignore,
boundaries.zones[].patterns, overrides[].files,
ignoreExports[].file, ignoreCatalogReferences[].consumer) are
validated against absolute paths, .. traversal segments, and invalid
glob syntax. Loading fails loud on any rejection so silent no-match
configs surface to the user. See issue #463.
§Errors
Returns an error when the config file cannot be read, merged, or deserialized, or when any user-supplied glob pattern is rejected.
Sourcepub fn validate_user_globs(&self) -> Result<(), Vec<GlobValidationError>>
pub fn validate_user_globs(&self) -> Result<(), Vec<GlobValidationError>>
Validate all user-supplied glob patterns and directory paths in this config.
Accumulates errors from every glob- or path-bearing field so the user sees ALL offending values in one run rather than fixing them one at a time.
Covered filesystem glob fields: entry, ignorePatterns,
dynamicallyLoaded, duplicates.ignore, health.ignore,
overrides[].files, ignoreExports[].file,
ignoreCatalogReferences[].consumer, boundaries.zones[].patterns,
plus every glob-bearing field on inline framework[] plugin
definitions (entry points, always-used, config patterns, used-exports
patterns, and fileExists detection patterns; the last reaches
glob::glob on disk so a .. segment there is a real path traversal).
Covered specifier glob fields: ignoreUnresolvedImports. These match
raw import strings, so parent-relative specifiers like ../generated/**
are valid and only glob syntax is checked.
Covered directory-path fields: boundaries.zones[].root and
boundaries.zones[].autoDiscover. These are literal paths (not
globs), so only the absolute-path + traversal checks apply.
§Errors
Returns a non-empty Vec of
glob_validation::GlobValidationError
when any field contains a rejected value.
Sourcepub fn find_config_path(start: &Path) -> Option<PathBuf>
pub fn find_config_path(start: &Path) -> Option<PathBuf>
Find the config file path without loading it.
Searches the same locations as find_and_load.
Sourcepub fn find_and_load(start: &Path) -> Result<Option<(Self, PathBuf)>, String>
pub fn find_and_load(start: &Path) -> Result<Option<(Self, PathBuf)>, String>
Find and load config, searching from start up to the project root.
§Errors
Returns an error if a config file is found but cannot be read or parsed.
Sourcepub fn json_schema() -> Value
pub fn json_schema() -> Value
Generate JSON Schema for the configuration format.
Sourcepub fn validate_resolved_boundaries(
&self,
root: &Path,
) -> Result<(), Vec<ZoneValidationError>>
pub fn validate_resolved_boundaries( &self, root: &Path, ) -> Result<(), Vec<ZoneValidationError>>
Validate boundary zone references and zone-root-prefix conflicts AFTER preset and auto-discover expansion.
Runs the same expand sequence as FallowConfig::resolve (preset
expansion gated on tsconfig rootDir, then expand_auto_discover)
before invoking
BoundaryConfig::validate_zone_references
and
BoundaryConfig::validate_root_prefixes,
so Bulletproof-style presets whose authored rule references logical
groups (features) still load cleanly.
Call sites (runtime_support::load_config_for_analysis in the CLI,
core::lib::config_for_project for LSP and programmatic embedders)
surface every collected error in a single rendered diagnostic, then
exit with code 2. Previously these failures emitted tracing::error!
and continued, producing a flood of false-positive boundary violations
at analysis time (#468).
root is the project root used by expand_auto_discover to scan for
child directories. Caller is responsible for passing the same root it
later hands to resolve().
§Errors
Returns a non-empty Vec<ZoneValidationError> aggregating every
offending zone reference and redundant-root-prefix pattern; the empty
case becomes Ok(()).
Source§impl FallowConfig
impl FallowConfig
Sourcepub fn resolve(
self,
root: PathBuf,
output: OutputFormat,
threads: usize,
no_cache: bool,
quiet: bool,
cache_max_size_mb: Option<u32>,
) -> ResolvedConfig
pub fn resolve( self, root: PathBuf, output: OutputFormat, threads: usize, no_cache: bool, quiet: bool, cache_max_size_mb: Option<u32>, ) -> ResolvedConfig
Resolve into a fully resolved config with compiled globs.
Trait Implementations§
Source§impl Debug for FallowConfig
impl Debug for FallowConfig
Source§impl Default for FallowConfig
impl Default for FallowConfig
Source§fn default() -> FallowConfig
fn default() -> FallowConfig
Source§impl<'de> Deserialize<'de> for FallowConfig
impl<'de> Deserialize<'de> for FallowConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for FallowConfig
impl JsonSchema for FallowConfig
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreAuto Trait Implementations§
impl Freeze for FallowConfig
impl RefUnwindSafe for FallowConfig
impl Send for FallowConfig
impl Sync for FallowConfig
impl Unpin for FallowConfig
impl UnsafeUnpin for FallowConfig
impl UnwindSafe for FallowConfig
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
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg or
a color-specific method, such as OwoColorize::green, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg or
a color-specific method, such as OwoColorize::on_yellow, Read more