Skip to main content

dpp_calc/repairability/thresholds/
washing_machine.rs

1//! Washing machines / washer-dryers — stub; ESPR delegated act expected.
2//!
3//! EU 2021/341 includes repairability requirements for washing machines. An
4//! ESPR-era repairability index delegated act is expected ~2026. Weights and
5//! thresholds below are placeholder pending the official annex.
6
7use super::{
8    DEFAULT_REPAIRABILITY_THRESHOLDS, RepairabilityRuleset, RepairabilityThresholds,
9    RepairabilityWeights,
10};
11use crate::ruleset::{Effectivity, RegulatoryBasis, Ruleset, RulesetId, RulesetVersion};
12
13pub struct WashingMachineRuleset;
14
15static WASHING_WEIGHTS: RepairabilityWeights = RepairabilityWeights {
16    disassembly: 0.25,
17    spare_parts: 0.20,
18    repair_info: 0.20,
19    diagnostic_tools: 0.15,
20    software_updatability: 0.10,
21    customer_support: 0.10,
22};
23
24static WASHING_BASIS: RegulatoryBasis = RegulatoryBasis {
25    regulation: "pending — ESPR washing machine repairability delegated act (expected ~2026)",
26    article: "TBD",
27    standard: Some("EN 45554:2021"),
28    technical_study: None,
29    source_url: None,
30    superseded_by: None,
31};
32
33static WASHING_RULESET_ID: RulesetId = RulesetId("washing-machine-repairability");
34static WASHING_RULESET_VERSION: RulesetVersion = RulesetVersion("0.0.0-stub");
35static WASHING_EFFECTIVITY: Effectivity = Effectivity::pending(
36    "ESPR (EU) 2024/1781 — washing machine repairability delegated act, not yet adopted",
37    None,
38);
39
40impl Ruleset for WashingMachineRuleset {
41    fn id(&self) -> &RulesetId {
42        &WASHING_RULESET_ID
43    }
44
45    fn version(&self) -> &RulesetVersion {
46        &WASHING_RULESET_VERSION
47    }
48
49    fn effectivity(&self) -> &Effectivity {
50        &WASHING_EFFECTIVITY
51    }
52
53    fn regulatory_basis(&self) -> &RegulatoryBasis {
54        &WASHING_BASIS
55    }
56}
57
58impl RepairabilityRuleset for WashingMachineRuleset {
59    fn weights(&self) -> &RepairabilityWeights {
60        &WASHING_WEIGHTS
61    }
62
63    fn thresholds(&self) -> &RepairabilityThresholds {
64        &DEFAULT_REPAIRABILITY_THRESHOLDS
65    }
66}