Skip to main content

alint_core/
lib.rs

1//! alint-core — engine, walker, rule trait, config AST.
2//!
3//! See `docs/design/ARCHITECTURE.md` in the alint repository for the
4//! rule model, execution order, and crate layout rationale.
5
6mod config;
7mod engine;
8mod error;
9pub mod facts;
10pub mod git;
11mod level;
12mod registry;
13mod report;
14mod rule;
15mod scope;
16mod scope_filter;
17pub mod template;
18mod walker;
19pub mod when;
20
21pub use config::{
22    CompiledNestedSpec, Config, ContentSourceSpec, ExtendsEntry, FileAppendFinalNewlineFixSpec,
23    FileAppendFixSpec, FileCollapseBlankLinesFixSpec, FileCreateFixSpec,
24    FileNormalizeLineEndingsFixSpec, FilePrependFixSpec, FileRemoveFixSpec, FileRenameFixSpec,
25    FileStripBidiFixSpec, FileStripBomFixSpec, FileStripZeroWidthFixSpec,
26    FileTrimTrailingWhitespaceFixSpec, FixSpec, NestedRuleSpec, PathsSpec, RuleSpec,
27    resolve_content_source,
28};
29pub use engine::{Engine, RuleEntry};
30pub use error::{Error, Result};
31pub use facts::{FactKind, FactSpec, FactValue, FactValues, evaluate_facts};
32pub use level::Level;
33pub use registry::{RuleBuilder, RuleRegistry};
34pub use report::{FixItem, FixReport, FixRuleResult, FixStatus, Report};
35pub use rule::{
36    Context, FixContext, FixOutcome, Fixer, GitTrackedMode, PerFileRule, ReadForFix, Rule,
37    RuleResult, Violation, check_fix_size, read_for_fix,
38};
39pub use scope::Scope;
40pub use scope_filter::{
41    ScopeFilter, ScopeFilterSpec, reject_scope_filter_on_cross_file,
42    reject_scope_filter_with_reason,
43};
44pub use walker::{FileEntry, FileIndex, WalkOptions, walk};
45pub use when::{WhenEnv, WhenError, WhenExpr};