1#![warn(missing_docs)]
42#![warn(clippy::all)]
43#![deny(clippy::unwrap_used)]
46#![deny(clippy::panic)]
47#![allow(clippy::module_name_repetitions)]
48#![allow(clippy::missing_errors_doc)]
49#![allow(clippy::missing_panics_doc)]
50
51pub mod batch;
52pub mod error;
53pub mod fix;
54pub mod gpkg;
55pub mod metadata;
56pub mod raster;
57pub mod report;
58pub mod rules;
59pub mod stac;
60pub mod vector;
61
62pub use batch::{BatchConfig, BatchReport, BatchRunner, FileQcResult, SeverityCounts};
63pub use gpkg::{GpkgValidationResult, GpkgValidator};
64pub use stac::{StacValidationResult, StacValidator};
65
66pub mod prelude {
68 pub use crate::error::{QcError, QcIssue, QcResult, Severity};
70 pub use crate::fix::{FixResult, FixStrategy, TopologyFixer};
71 pub use crate::metadata::{MetadataChecker, MetadataConfig, MetadataResult, MetadataStandard};
72 pub use crate::raster::{
73 AccuracyChecker, AccuracyConfig, AccuracyResult, BandRadiometricResult, BandRange,
74 CogComplianceChecker, CogComplianceResult, CompletenessChecker, CompletenessConfig,
75 CompletenessResult, ConsistencyChecker, ConsistencyConfig, ConsistencyResult,
76 CrsAndExtentValidator, CrsExtentValidationResult, NoDataBandStats, NoDataValidationResult,
77 NoDataValidator, RadiometricValidationResult, RadiometricValidator, SensorProfile,
78 StrictMode,
79 };
80 pub use crate::report::{QualityAssessment, QualityReport, ReportSection};
81 pub use crate::rules::{
82 ComparisonOperator, QcValue, QualityRule, RuleBuilder, RuleCategory, RuleSet, RulesEngine,
83 };
84 pub use crate::vector::{
85 AttributionChecker, AttributionConfig, AttributionResult, TopologyChecker, TopologyConfig,
86 TopologyOptions, TopologyResult, TopologyViolation, check_topology_rules,
87 has_self_intersection,
88 };
89}
90
91pub const VERSION: &str = env!("CARGO_PKG_VERSION");
93
94pub const NAME: &str = env!("CARGO_PKG_NAME");
96
97#[cfg(test)]
98mod tests {
99 use super::*;
100
101 #[test]
102 fn test_version() {
103 assert!(!VERSION.is_empty());
104 assert_eq!(NAME, "oxigeo-qc");
105 }
106
107 #[test]
108 fn test_prelude_imports() {
109 use prelude::*;
110
111 let _severity = Severity::Major;
113 let _assessment = QualityAssessment::Good;
114 let _strategy = FixStrategy::Conservative;
115 }
116}