Expand description
dpp-rules — pure EU ESPR cross-field regulatory rules.
Rules are grouped by sector module. Batteries, textiles, and electronics are the active sectors; all others have placeholder modules and will be populated in a later phase.
Inputs are primitive borrowing views so each caller adapts its own
representation — typed structs in core, serde_json::Value fields in
plugins — without this crate depending on either.
See docs/architecture/SECTOR-MODEL-CONSOLIDATION.md §7.
The bundle feature (off by default) adds the ruleset-bundle format +
verification seam (the bundle module — conditionally compiled, so not
linked here) and pulls in std — see that module’s docs.
Re-exports§
pub use chemicals::cas::validate_cas_format;pub use chemicals::surfactants::SURFACTANT_BANDS;pub use chemicals::surfactants::SurfactantInput;pub use chemicals::surfactants::surfactant_band_valid;pub use chemicals::surfactants::validate_surfactants;pub use chemicals::svhc::ECHA_CANDIDATE_LIST;pub use chemicals::svhc::SVHC_THRESHOLD_PCT;pub use chemicals::svhc::SvhcFinding;pub use chemicals::svhc::SvhcFindingKind;pub use chemicals::svhc::SvhcInput;pub use chemicals::svhc::check_svhc_declarations;pub use chemicals::svhc::validate_svhc_substances;pub use common::country::country_code_valid;pub use textiles::fibre::FIBRE_SUM_TOLERANCE;pub use textiles::fibre::FibreInput;pub use textiles::fibre::fibre_sum_ok;pub use textiles::fibre::validate_fibre_composition;
Modules§
- batteries
- Batteries — EU Regulation 2023/1542, Annex XIII (battery passport data attributes).
- chemicals
- Chemical substance rules — REACH, RoHS, EU 2026/405 and related regulations.
- common
- Cross-sector helper rules: country code validation, numeric utilities, and unit conversions.
- construction
- Construction — regulatory basis pending (ESPR provisional sector).
- electronics
- Electronics — EU Ecodesign Regulation (ESPR), sector rules. NOTE: repairability scoring (EN 45554 A–E grades, weighted) lives in dpp-calc, not here.
- lint
- Passport plausibility lints — non-binding findings that flag implausible
data (arithmetic that doesn’t add up, values outside physically plausible
ranges, or fields whose declared values are inconsistent with each other),
as distinct from the malformed data JSON Schema catches or the
non-compliant data a
crate::batteries/crate::textiles-style rule catches. A lint finding never blocks publish — seeLintSeverity. - metals
- Metals — CBAM (EU Regulation 2023/956) and EU ESPR sector rules.
- textiles
- Textiles — EU ESPR textile sector rules (unsold textiles, garment labelling).
- toys
- Toys — EN 71 / REACH / ESPR provisional sector.