1#![deny(clippy::print_stdout)]
4#![allow(clippy::new_without_default)]
5
6mod encoding;
7mod event;
8mod match_action;
9
10#[cfg(any(test, feature = "testing", feature = "bench"))]
11mod event_json;
12mod match_validation;
13mod normalization;
14mod observability;
15mod parser;
16mod path;
17mod proximity_keywords;
18mod rule_match;
19mod scanner;
20pub(crate) mod scoped_ruleset;
21mod secondary_validation;
22mod simple_event;
23mod stats;
24mod tokio;
25mod validation;
26
27pub use simple_event::SimpleEvent;
28
29pub use encoding::{EncodeIndices, Encoding, Utf8Encoding};
31pub use event::{Event, EventVisitor, VisitStringResult};
32pub use match_action::{MatchAction, PartialRedactDirection};
33
34pub use match_validation::{
35 config::AwsConfig, config::AwsType, config::CustomHttpConfig, config::HttpMethod,
36 config::HttpStatusCodeRange, config::HttpValidatorOption, config::InternalMatchValidationType,
37 config::MatchValidationType, config::RequestHeader, match_status::MatchStatus,
38};
39pub use observability::labels::Labels;
40pub use path::{Path, PathSegment};
41pub use rule_match::{ReplacementType, RuleMatch};
42pub use scanner::shared_pool::{SharedPool, SharedPoolGuard};
43
44pub use scanner::suppression::Suppressions;
45pub use scanner::{
46 CompiledRule, MatchEmitter, RootCompiledRule, RootRuleConfig, RuleResult, RuleStatus,
47 ScanOptionBuilder, Scanner, ScannerBuilder, SharedData, StringMatch, StringMatchesCtx,
48 config::RuleConfig,
49 error::{CreateScannerError, ScannerError},
50 regex_rule::RegexCaches,
51 regex_rule::config::{ProximityKeywordsConfig, RegexRuleConfig, SecondaryValidator},
52 scope::Scope,
53};
54pub use scoped_ruleset::ExclusionCheck;
55pub use tokio::TOKIO_RUNTIME;
56pub use validation::{
57 RegexValidationError, get_regex_complexity_estimate_very_slow, validate_regex,
58};
59
60#[cfg(any(feature = "testing", feature = "bench"))]
61pub use crate::{
62 scoped_ruleset::{ContentVisitor, RuleIndexVisitor, ScopedRuleSet},
63 secondary_validation::{LuhnChecksum, Validator},
64};