pub mod card;
pub mod changed;
pub mod discovery;
pub mod fact;
pub mod files;
pub mod fix;
pub mod gates;
pub mod limits;
pub mod location;
pub mod query_cover;
pub mod rule_id;
pub mod severity;
pub mod suppression;
pub mod tracked;
pub mod types_config;
pub mod violation;
pub use card::{CardProblem, Examples, RuleCard};
pub use changed::ChangeError;
pub use discovery::{Discovery, DiscoveryError, Rejection};
pub use fact::Fact;
pub use files::{FileAccess, ReadError};
pub use fix::Fix;
pub use gates::{CompiledGates, GateError, Gates};
pub use limits::{
AnalysisBudget, Charge, DEFAULT_ANALYSIS_TIMEOUT, DEFAULT_GLOBAL_TIMEOUT, DEFAULT_MEMORY_BYTES,
DEFAULT_RULE_TIMEOUT, Limits, Paused, RunClock, analysis_overrun_fallback,
};
pub use location::{FilePath, Location, Position};
pub use rule_id::{Namespace, ParseRuleIdError, RuleId};
pub use severity::{ParseSeverityError, Severity};
pub use suppression::{Suppression, Suppressions};
pub use tracked::{ContentHash, ReadOutcome, TrackedRead};
pub use types_config::{TypesConfig, TypesProvider};
pub use violation::{Violation, any_failing, sort};
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum Capability {
Types,
Dataflow,
}
impl Capability {
#[must_use]
pub const fn as_str(self) -> &'static str {
match self {
Self::Types => "types",
Self::Dataflow => "dataflow",
}
}
#[must_use]
pub fn parse(name: &str) -> Option<Self> {
match name {
"types" => Some(Self::Types),
"dataflow" => Some(Self::Dataflow),
_ => None,
}
}
#[must_use]
pub const fn all() -> &'static [Self] {
&[Self::Types, Self::Dataflow]
}
}