use schemars::JsonSchema;
use serde::{Deserialize, Serialize};
use std::str::FromStr;
macro_rules! define_id {
(
$(#[$meta:meta])*
$name:ident
) => {
$(#[$meta])*
#[derive(Debug, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, Serialize, Deserialize, JsonSchema)]
#[serde(transparent)]
pub struct $name(pub String);
impl $name {
pub fn new(value: impl Into<String>) -> Self {
Self(value.into())
}
pub fn generate() -> Self {
Self(uuid::Uuid::new_v4().to_string())
}
pub fn as_str(&self) -> &str {
&self.0
}
pub fn is_empty(&self) -> bool {
self.0.is_empty()
}
}
impl std::fmt::Display for $name {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.write_str(&self.0)
}
}
impl From<String> for $name {
fn from(value: String) -> Self {
Self(value)
}
}
impl From<&str> for $name {
fn from(value: &str) -> Self {
Self(value.to_string())
}
}
impl AsRef<str> for $name {
fn as_ref(&self) -> &str {
&self.0
}
}
impl FromStr for $name {
type Err = std::convert::Infallible;
fn from_str(value: &str) -> Result<Self, Self::Err> {
Ok(Self::new(value))
}
}
};
}
define_id!(
EnvelopeId
);
define_id!(
ClaimId
);
define_id!(
ClaimVersionId
);
define_id!(
EntityId
);
define_id!(
EpisodeId
);
define_id!(
AttemptId
);
define_id!(
TrialId
);
define_id!(
ArtifactId
);
define_id!(
ProjectionId
);
define_id!(
RelationId
);
define_id!(
RelationVersionId
);
define_id!(
ImportBatchId
);
define_id!(
ClaimFamilyId
);
define_id!(
AssertionGroupId
);
define_id!(
RelationGroupId
);
define_id!(
JointEvidenceGroupId
);
define_id!(
ContradictionGroupId
);
define_id!(
ConstraintGroupId
);
define_id!(
KernelRunId
);
define_id!(
ConstraintId
);
define_id!(
HyperedgeId
);
define_id!(
ResidualId
);
define_id!(
SyndromeId
);
define_id!(
WitnessId
);
define_id!(
CertificateId
);
define_id!(
OracleSliceId
);
define_id!(
RegionId
);
define_id!(
RegionDigestId
);
define_id!(
ArtifactTransportId
);
define_id!(
RepairRouteId
);
define_id!(
RepairCandidateId
);
define_id!(
NuisanceStateId
);
define_id!(
ConvergenceReportId
);
define_id!(
OperatorId
);
define_id!(
OperatorVersionId
);
define_id!(
RefutationResultId
);
define_id!(
CalibrationReportId
);
define_id!(
VerificationCaseId
);
define_id!(
CheckPlanId
);
define_id!(
ControlReceiptId
);
define_id!(
LedgerEntryId
);
define_id!(
PolicyDecisionId
);
define_id!(
ExecutionPermitId
);
define_id!(
ApprovalRecordId
);
define_id!(
ApprovalGrantId
);
define_id!(
PromotionDecisionId
);
define_id!(
RefutationDecisionId
);
define_id!(
RollbackPlanId
);
define_id!(
CalibrationSnapshotId
);
define_id!(
LearningUpdateId
);
define_id!(
BoundaryRepairRecordId
);
define_id!(
SemanticsProfileId
);
define_id!(
ClaimStateId
);
define_id!(
SemanticDiffId
);
define_id!(
CausalAttributionBundleId
);
define_id!(
DegradationRecordId
);
define_id!(
ExactnessBudgetId
);
define_id!(
SupportSetId
);
define_id!(
ContradictionWitnessId
);
define_id!(
RetractionRecordId
);
define_id!(
InterventionId
);
define_id!(
OutcomeSchemaId
);
define_id!(
ExperimentCaseId
);
define_id!(
CohortContractId
);
define_id!(
ComparabilityMatrixId
);
define_id!(
CounterfactualSliceId
);
define_id!(
DecisionTraceId
);
define_id!(
RefuterSuiteId
);
define_id!(
RefuterResultId
);
define_id!(
RolloutDecisionId
);
define_id!(
RollbackDecisionId
);
define_id!(
ExperimentBudgetId
);
define_id!(
AttestationEnvelopeId
);
define_id!(
TrustRootSetId
);
define_id!(
ArtifactAdmissionPolicyId
);
define_id!(
TransparencyReceiptId
);
define_id!(
AttestationRevocationId
);
define_id!(
AttestationSupersessionId
);
define_id!(
RemoteOracleLeaseId
);
define_id!(
RemoteSliceRequestId
);
define_id!(
RemoteSliceResultId
);
define_id!(
CrossRuntimeReplayTicketId
);
define_id!(
DisputeBundleId
);
define_id!(
DisclosurePolicyId
);
define_id!(
DisclosureBudgetId
);
define_id!(
TreatyBundleId
);
define_id!(
RuntimeIdentitySetId
);
define_id!(
CrossRuntimeEquivalenceBundleId
);
define_id!(
SettlementCaseId
);
define_id!(
SharedDispositionId
);
define_id!(
LocalDissentId
);
define_id!(
SharedViewDowngradeId
);
define_id!(
SettlementReceiptId
);
define_id!(
SharedReplaySliceId
);
define_id!(
SharedDivergenceReportId
);
define_id!(
TreatySuspensionId
);
define_id!(
MechanismBundleId
);
define_id!(
TheoryVersionId
);
define_id!(
TheoryLibraryId
);
define_id!(
HypothesisLibraryId
);
define_id!(
SimulationContractId
);
define_id!(
FitRunId
);
define_id!(
TheoryRefuterSuiteId
);
define_id!(
RolloutStabilityReportId
);
define_id!(
DiscoveryProgramId
);
define_id!(
PortfolioPlanId
);
define_id!(
ExperimentCampaignId
);
define_id!(
CampaignDecisionTraceId
);
define_id!(
InformationValueEstimateId
);
define_id!(
VerificationLoadBudgetId
);
define_id!(
CharterBundleId
);
define_id!(
DoctrineSnapshotId
);
define_id!(
AmendmentProposalId
);
define_id!(
AmendmentDecisionId
);
define_id!(
ArchiveManifestId
);
define_id!(
CompactionReceiptId
);
define_id!(
HistoricalQueryGuaranteeId
);
define_id!(
DeprecationBundleId
);
define_id!(
RetirementBundleId
);
define_id!(
SpecBundleId
);
define_id!(
NormativeAstId
);
define_id!(
GeneratedSchemaBundleId
);
define_id!(
GeneratedInterpreterBundleId
);
define_id!(
GeneratedConformanceCorpusId
);
define_id!(
GeneratedMigrationPlanId
);
define_id!(
ProofObligationSetId
);
define_id!(
ProofEvaluationReceiptId
);
define_id!(
HumanVetoBundleId
);
define_id!(
MetaChallengeBundleId
);
define_id!(
SelfHostingBuildReceiptId
);
define_id!(
EffectIntentId
);
define_id!(
EffectPreflightReportId
);
define_id!(
EffectWindowId
);
define_id!(
EffectCommitDecisionId
);
define_id!(
EffectExecutionReceiptId
);
define_id!(
EffectObservationBundleId
);
define_id!(
CompensationPlanId
);
define_id!(
CompensationExecutionReceiptId
);
define_id!(
ExternalEffectLedgerEntryId
);
define_id!(
CapabilityClassId
);
define_id!(
AuthorityLeaseId
);
define_id!(
DelegationBundleId
);
define_id!(
AuthorityChainId
);
define_id!(
SeparationOfDutiesPolicyId
);
define_id!(
DualControlApprovalId
);
define_id!(
BreakGlassGrantId
);
define_id!(
DelegationRevocationId
);
define_id!(
ActingOnBehalfReceiptId
);
define_id!(
ConflictDisclosureId
);
define_id!(
DeploymentProfileId
);
define_id!(
OperatingEnvelopeId
);
define_id!(
AssuranceCaseId
);
define_id!(
HazardRegisterId
);
define_id!(
ControlMappingId
);
define_id!(
ResidualRiskAcceptanceId
);
define_id!(
ReleaseReadinessDecisionId
);
define_id!(
FieldMonitoringPlanId
);
define_id!(
CertificationBundleId
);
define_id!(
RecertificationTriggerId
);
define_id!(
ServiceLevelProfileId
);
define_id!(
ErrorBudgetLedgerId
);
define_id!(
IncidentCaseId
);
define_id!(
ContainmentDecisionId
);
define_id!(
ForensicFreezeId
);
define_id!(
RecoveryPlanId
);
define_id!(
RecoveryReplaySliceId
);
define_id!(
ContinuityExceptionId
);
define_id!(
PostmortemBundleId
);
define_id!(
ResilienceExerciseId
);
define_id!(
EffectReviewCaseId
);
define_id!(
EffectBlockReceiptId
);
define_id!(
DelegationReviewCaseId
);
define_id!(
ReleaseGateCaseId
);
define_id!(
ContinuityReviewCaseId
);
define_id!(
EffectPolicyProfileId
);
define_id!(
DelegationPolicyProfileId
);
define_id!(
ReleasePolicyProfileId
);
define_id!(
ContinuityPolicyProfileId
);
define_id!(
EffectAdjudicationReceiptId
);
define_id!(
ReleaseRollbackDecisionId
);
define_id!(
ToolEffectDispatchReceiptId
);
define_id!(
PrivacyRetentionProfileId
);
define_id!(
RedactionRuleSetId
);
define_id!(
AccessPurposeMatrixId
);
define_id!(
AuditExtractionPolicyId
);
define_id!(
ResidencyPolicyProfileId
);
define_id!(
TenantBoundaryProfileId
);
define_id!(
CrossBoundaryTransferClassId
);
define_id!(
LocalityExceptionId
);
define_id!(
RoleCatalogId
);
define_id!(
DelegationMatrixId
);
define_id!(
ApprovalMatrixId
);
define_id!(
ConflictClassCatalogId
);
define_id!(
RegulatoryRegimeProfileId
);
define_id!(
RequirementControlMapId
);
define_id!(
EvidenceCollectionPlanId
);
define_id!(
RecertificationScheduleId
);
define_id!(
HazardLibraryId
);
define_id!(
HazardScenarioId
);
define_id!(
MonitorCatalogId
);
define_id!(
MitigationPlaybookId
);
define_id!(
VendorCertificationAdapterId
);
define_id!(
VendorEvidenceTranslationId
);
define_id!(
VendorTrustRootBindingId
);
define_id!(
VendorRevocationHandlingId
);
define_id!(
IncidentTaxonomyId
);
define_id!(
SeverityMatrixId
);
define_id!(
PagerRouteProfileId
);
define_id!(
EscalationClockPolicyId
);
define_id!(
ApplicabilityContextId
);
define_id!(
ProfileSetId
);
define_id!(
CompositionRuleSetId
);
define_id!(
CompositionReceiptId
);
define_id!(
EffectiveConstitutionId
);
define_id!(
CompiledObligationSetId
);
define_id!(
CompositionConflictSetId
);
define_id!(
ProfileExceptionBundleId
);
define_id!(
PolicyImpactDiffId
);
#[cfg(test)]
#[path = "ids_tests.rs"]
mod tests;