#![allow(clippy::multiple_crate_versions)]
#![allow(clippy::struct_excessive_bools)]
#![allow(clippy::format_push_string)]
#![allow(clippy::trivially_copy_pass_by_ref)]
#![allow(clippy::should_implement_trait)]
#![allow(clippy::unnecessary_wraps)]
#![allow(clippy::unused_self)]
#![allow(clippy::redundant_closure)]
#![allow(clippy::redundant_closure_for_method_calls)]
#![allow(clippy::cast_precision_loss)]
#![allow(clippy::cast_possible_truncation)]
#![allow(clippy::cast_sign_loss)]
#![allow(clippy::cast_possible_wrap)]
#![allow(clippy::cast_lossless)]
#![allow(clippy::doc_markdown)]
#![allow(clippy::case_sensitive_file_extension_comparisons)]
#![allow(clippy::return_self_not_must_use)]
#![allow(clippy::must_use_candidate)]
#![warn(missing_docs)]
#![warn(clippy::all)]
#![warn(clippy::pedantic)]
#![allow(clippy::module_name_repetitions)]
#![allow(clippy::missing_errors_doc)]
#![allow(clippy::missing_panics_doc)]
pub mod analyzer;
pub mod cli;
pub mod compliance;
pub mod forensics;
pub mod ml_analyzer;
pub mod parser;
pub mod reporter;
pub mod scanner;
pub mod storage;
pub mod types;
pub mod utils;
pub use types::{Config, Cookie, CookieAttribute, Error, Regulation, Result, Severity};
pub use types::config::{AnalysisConfig, ScanConfig};
pub use types::issue::{ComplianceIssue, Issue, IssueCategory, SecurityIssue};
pub use types::report::{AnalysisResult, ComplianceResult, ScanResult};
pub use analyzer::Analyzer;
pub use compliance::ComplianceChecker;
pub use parser::{CookieParser, ParseError};
pub use reporter::{ReportFormat, Reporter};
pub use scanner::{Scanner, ScannerBuilder};
pub use ml_analyzer::{Anomaly, AnomalySeverity, MLAnalyzer, MLConfig};
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub const NAME: &str = env!("CARGO_PKG_NAME");
pub const AUTHORS: &str = env!("CARGO_PKG_AUTHORS");
pub const DESCRIPTION: &str = env!("CARGO_PKG_DESCRIPTION");
pub fn init_tracing() {
use tracing_subscriber::{fmt, prelude::*, EnvFilter};
tracing_subscriber::registry()
.with(fmt::layer())
.with(
EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("icookforms=info")),
)
.init();
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
#[allow(clippy::const_is_empty)]
fn test_version() {
assert!(!VERSION.is_empty());
}
#[test]
fn test_name() {
assert_eq!(NAME, "icookforms");
}
}