Skip to main content

Crate dpp_domain

Crate dpp_domain 

Source
Expand description

dpp-domain — EU Digital Product Passport domain types and port traits.

The dependency root of the DPP workspace: any crate here may depend on it, and it depends only on dpp-rules (pure regulatory rules). Not every crate does — dpp-rules, dpp-crypto, dpp-calc, dpp-vocab, dpp-plugin-traits and dpp-plugin-sdk stand on their own, which is why a Wasm product-group plugin never links this crate.

No I/O, no async, no HTTP, no database drivers — pure domain logic only.

Re-exports§

pub use catalog::CatalogError;
pub use catalog::Granularity;
pub use catalog::ProductGroupCatalog;
pub use catalog::ProductGroupDescriptor;
pub use catalog::RegulatoryStatus;
pub use catalog::RetentionBasis;
pub use instrument::CustomerPersonalData;
pub use instrument::DateBasis;
pub use instrument::Instrument;
pub use instrument::InstrumentBinding;
pub use instrument::InstrumentCatalog;
pub use instrument::InstrumentKind;
pub use instrument::InstrumentRef;
pub use instrument::InstrumentStatus;
pub use instrument::ObligationDate;
pub use instrument::PassportObligation;
pub use instrument::PersonalDataStorage;
pub use instrument::RecordedBasis;
pub use crate::credential::PassportCredential;
pub use crate::credential::PassportCredentialSubject;
pub use crate::credential::SignedCredential;
pub use crate::disclosure::Audience;
pub use crate::disclosure::Disclosure;
pub use crate::disclosure::PASSPORT_FIELD_DISCLOSURE;
pub use crate::identifier::CnCategory;
pub use crate::identifier::CnCategoryError;
pub use crate::identifier::CommodityCode;
pub use crate::identifier::CommodityCodeError;
pub use crate::identifier::Gln;
pub use crate::identifier::GlnError;
pub use crate::identifier::Gtin;
pub use crate::identifier::GtinError;
pub use crate::identifier::ProductIdentifier;
pub use crate::identifier::ProductIdentifierError;
pub use crate::identifier::gs1_check_digit;
pub use crate::lint::LintFinding;
pub use crate::lint::LintResult;
pub use crate::lint::LintSeverity;
pub use crate::lint::lint_product_group_data;
pub use crate::operator::OperatorRole;
pub use crate::operator::ResponsibilityBasis;
pub use crate::operator::ResponsibleOperator;
pub use crate::operator::ResponsibleOperatorSnapshot;
pub use crate::passport::CarrierQualifier;
pub use crate::passport::FacilitySnapshot;
pub use crate::passport::ManufacturerInfo;
pub use crate::passport::MaterialEntry;
pub use crate::passport::PASSPORT_PROOF_FIELDS;
pub use crate::passport::PASSPORT_WIRE_KEYS;
pub use crate::passport::Passport;
pub use crate::passport::PassportId;
pub use crate::passport::PassportView;
pub use crate::passport::RETENTION_MUTABLE_FIELDS;
pub use crate::personal_data::HeldOutside;
pub use crate::personal_data::LawfulBasis;
pub use crate::personal_data::PersonalDataRecordId;
pub use crate::personal_data::PersonalDataStatement;
pub use crate::product::ProductIdentity;
pub use crate::product_group::AluminiumData;
pub use crate::product_group::BatteryChemistry;
pub use crate::product_group::BatteryData;
pub use crate::product_group::BatteryStatus;
pub use crate::product_group::BatteryType;
pub use crate::product_group::CarbonFootprint;
pub use crate::product_group::CarbonFootprintClass;
pub use crate::product_group::CarbonFootprintClassError;
pub use crate::product_group::ConstructionData;
pub use crate::product_group::DetergentData;
pub use crate::product_group::DeviceType;
pub use crate::product_group::DiscardReason;
pub use crate::product_group::DiscardedProductLine;
pub use crate::product_group::DiscardedQuantity;
pub use crate::product_group::DisclosingEntity;
pub use crate::product_group::DisclosureScope;
pub use crate::product_group::DynamicPerformance;
pub use crate::product_group::ElectronicsData;
pub use crate::product_group::EnergyEfficiencyClass;
pub use crate::product_group::EnvironmentalReading;
pub use crate::product_group::ExpectedLifetime;
pub use crate::product_group::FibreEntry;
pub use crate::product_group::FinancialYear;
pub use crate::product_group::FurnitureData;
pub use crate::product_group::HarmfulEvents;
pub use crate::product_group::HazardSymbol;
pub use crate::product_group::HazardousSubstance;
pub use crate::product_group::LegalEntityIdentifier;
pub use crate::product_group::LifecycleStage;
pub use crate::product_group::MaterialComposition;
pub use crate::product_group::MattressData;
pub use crate::product_group::ProductGroup;
pub use crate::product_group::ProductGroupData;
pub use crate::product_group::ProductionRoute;
pub use crate::product_group::RepairCriterion;
pub use crate::product_group::RepairabilityScore;
pub use crate::product_group::StateOfChargeReading;
pub use crate::product_group::StateOfHealth;
pub use crate::product_group::SteelData;
pub use crate::product_group::SurfactantEntry;
pub use crate::product_group::SvhcSubstance;
pub use crate::product_group::SystemBoundary;
pub use crate::product_group::TemperatureRange;
pub use crate::product_group::TextileData;
pub use crate::product_group::ToyData;
pub use crate::product_group::TyreData;
pub use crate::product_group::UnmodelledPayload;
pub use crate::product_group::UnsoldGoodsReport;
pub use crate::product_group::UsageHistory;
pub use crate::product_group::WasteTreatmentSplit;
pub use crate::status::PassportStatus;
pub use crate::transfer::TransferChain;
pub use crate::transfer::TransferError;
pub use crate::transfer::TransferReason;
pub use crate::transfer::TransferRecord;
pub use crate::transfer::TransferStatus;
pub use error::DppError;
pub use field_error::FieldError;
pub use field_error::ValidationErrors;
pub use validation::BatchValidationItem;
pub use validation::ProductGroupValidator;
pub use validation::ProductGroupValidatorRegistry;
pub use validation::batch_errors;
pub use validation::battery_recycled_chemistry_conflicts;
pub use validation::check_personal_data;
pub use validation::personal_data_marks;
pub use validation::unsold_goods_annex_vii_heading;
pub use validation::unsold_goods_cn_depth_is_correct;
pub use validation::validate_battery_operating_temp;
pub use validation::validate_fibre_composition;
pub use validation::validate_passport;
pub use validation::validate_product_group_data;
pub use validation::validate_product_group_data_batch;
pub use validation::validate_product_group_data_with_registry;
pub use validation::validate_raw_product_group_data;
pub use validation::validate_surfactants;
pub use validation::validate_svhc_substances;
pub use compliance::ComplianceError;
pub use compliance::ComplianceErrorKind;
pub use compliance::ComplianceFinding;
pub use compliance::ComplianceResult;
pub use compliance::ComplianceStatus;
pub use compliance::gate_determination;
pub use ports::archive::ArchiveReceipt;
pub use ports::archive::ArchivedVersion;
pub use ports::archive::ArchivedVersionPort;
pub use ports::backup::BackupCopyPort;
pub use ports::backup::BackupReceipt;
pub use ports::backup::BackupStatus;
pub use ports::backup::BackupVerification;
pub use ports::backup::GhostBackup;
pub use ports::compliance::ComplianceRegistry;
pub use ports::compliance::ComplianceStrategy;
pub use ports::passport_repo::PROTECTED_PATCH_FIELDS;
pub use ports::personal_data::ErasureReceipt;
pub use ports::personal_data::HeldRecord;
pub use ports::personal_data::PersonalDataPort;
pub use ports::personal_data::PersonalDataRecord;
pub use ports::registry_sync::GhostRegistrySync;
pub use ports::registry_sync::RegistrationRequest;
pub use ports::registry_sync::RegistryRecord;
pub use ports::registry_sync::RegistryStatus;
pub use ports::registry_sync::RegistrySyncPort;
pub use ports::registry_sync::SubmissionAcknowledgement;
pub use ports::registry_sync::SubmissionReport;
pub use passthrough::PassthroughBatteryStrategy;
pub use passthrough::PassthroughRegistry;
pub use passthrough::PassthroughTextileStrategy;

Modules§

access
ProductGroup access policy — the per-field disclosure contract and the filter that applies it.
catalog
The open, data-driven catalog of EU product groups.
compliance
Compliance determination value objects — the result of running a product group’s rules against a passport, and the errors that stop one being produced.
credential
W3C Verifiable Credential 2.0 types binding a passport to its signed payload.
disclosure
The disclosure lattice — who may see which class of field.
eol
End-of-life declarations for a Digital Product Passport.
error
The crate-wide error surface.
facility
FacilitySnapshot — where a product was made, as recorded at issuance.
field_error
Per-field validation detail — FieldError and its ValidationErrors collection.
graph
The bill-of-materials graph a passport sits in.
identifier
Product and party identifiers — the vocabulary tier.
instrument
The legal instruments the passport regime is built on — the acts themselves, how they bind a product group, and what obligation they create.
lint
Passport plausibility lint dispatch — maps ProductGroupData onto the dpp-rules::lint pack and carries the owned, serialisable wire types the engine persists on crate::passport::Passport::lint_result.
manufacturer
ManufacturerInfo — the economic operator that placed the product on the market.
material
MaterialEntry — one declared constituent material of a product.
operator
The economic operator answerable for a product, and the law that makes it so.
passport
The Passport aggregate root and its unique identifier type.
passthrough
Open-core compliance boundary: the Apache-2.0 passthrough registry.
personal_data
Personal data and the passport: what the operator states about it, and why the data itself is never part of the passport.
ports
Port traits defining the core/platform boundary — one port per infrastructure concern.
product
ProductIdentity — what identifies a product, independent of its passport.
product_group
Typed, product group-specific DPP data for the EU ESPR framework.
schemas
Versioned schema registry for EU ESPR product group schemas.
seal
eIDAS qualified electronic seal value objects — what a seal is once produced, and what an adapter reports about its own capabilities.
status
PassportStatus — the passport lifecycle state machine.
transfer
Transfer of Responsibility model for EU ESPR DPP.
trusted_list
EU Trusted List vocabulary — who is qualified, for what, and since when.
validation
JSON Schema + cross-field validation for product group-specific DPP data.

Constants§

VERSION
The version of dpp-core this build was compiled against.