Weave documentation
Weave Compliance

Regulatory

Reporter registration and placeholder report/submission behavior.

Register a report generator

ProductionRegulatoryReporter::new() starts with an empty registry. Register an implementation of RegulatoryReportGenerator before requesting that regulation; otherwise the reporter returns ComplianceError::NotFound.

use std::sync::Arc;
use weave_compliance::regulatory::{
    GdprComplianceEngine, ProductionRegulatoryReporter, RegulatoryReporter, ReportingPeriod,
};

async fn example_report() -> Result<(), Box<dyn std::error::Error>> {
    let reporter = ProductionRegulatoryReporter::new();
    reporter.register("GDPR", Arc::new(GdprComplianceEngine)).await;
    let report = reporter.generate_regulatory_report("GDPR", ReportingPeriod::Quarterly).await?;
    println!("{}", report.regulation);
    Ok(())
}

This demonstrates dispatch only. The included GdprComplianceEngine returns a fixed compliance label and does not evaluate the supplied data. The reporter currently supplies default empty RegulatoryData to its generator.

submit_regulatory_report creates a timestamp-based submission ID and a fixed accepted status locally. It does not contact a regulator or perform a real submission. There are no built-in SOC 2 or HIPAA validation engines established by this module. Implement the relevant data collection, validation and transport separately before relying on such outcomes.

Source reference

Exact declarations and source provenance · Package features and manifest.

On this page