use super::{ AddressFamily, AddressFamilyDisposition, ArtifactLease, ArtifactState, ConfigurationFingerprintRecordV1, DefaultAction, DeniedDestinationObservation, DerivedNetworkPolicy, DeveloperDecision, DeveloperDecisionKind, DnsObservation, Domain, DomainStore, EnvironmentReference, EscalationOutcome, Generation, GenerationIdentity, GitRoutingOwnership, GuestProcessIdentity, HelperOwnership, HostProcessIdentity, HostProcessOwnershipSlot, LegacyUnverifiedProcessIdentityV1, Mailbox, MailboxCancellation, MailboxRequest, MailboxResult, MailboxResultAck, MailboxResultChunk, MountIdentity, NamespaceIdentity, NetworkObservation, NetworkOwnership, NetworkReachabilityProbe, NetworkReadinessAttestation, NetworkReadinessEvidence, NetworkReadinessIdentity, Participant, ParticipantOwnership, ParticipantState, PermittedDestinationObservation, PersistedHostProcessOwnership, PidfsProcessAuthorityV1, PidfsProcessIdentityV1, PolicyAction, PolicyDelivery, PrefixRule, PrepareOperation, PreparedArtifact, PreparedLowerOwnership, ProcessOwnershipCommitAck, ProcessOwnershipMessageVersion, ProtocolCredential, ProtocolCredentialRole, ProtocolPublicationIdentity, PtyIdentity, PublicationOwnership, ResolvedAutoApprovalRule, ResolvedVolume, Resolver, ResultStream, SandboxCredentialBundle, SandboxOwnership, Session, SessionBinding, SessionClose, SessionExit, SessionExitOutcome, SessionRequestCapability, SessionTerminal, SessionTerminalEvent, SessionTerminalMessage, SessionTerminalState, SignedProtocolRecord, StagedProcessOwnership, StateAnchorOwnership, StorageCatalog, StoreMetadata, TerminalInput, TerminalOutput, TerminalResize, TerminalSignal, TerminalSignalKind, TlsCredential, TlsRole, TrustManifest, TrustedHostConfigurationV1, }; pub trait SchemaType { const NAME: &'static str; } macro_rules! schema_types { ($($name:literal => $record:ty),+; $($declared:literal),* $(,)?) => { $( impl SchemaType for $record { const NAME: &'static str = $name; } )+ pub const IMPLEMENTED_SERIALIZED_SCHEMA_TYPE_NAMES: &[&str] = &[$($name),+]; pub const DECLARED_SERIALIZED_SCHEMA_TYPE_NAMES: &[&str] = &[ $($name),+, $($declared),* ]; }; } schema_types!( "StoreMetadata" => StoreMetadata, "Domain" => Domain, "Generation" => Generation, "Participant" => Participant, "ParticipantState" => ParticipantState, "ParticipantOwnership" => ParticipantOwnership, "Session" => Session, "SessionTerminal" => SessionTerminal, "SessionTerminalState" => SessionTerminalState, "Mailbox" => Mailbox, "PtyIdentity" => PtyIdentity, "PidfsProcessAuthorityV1" => PidfsProcessAuthorityV1, "PidfsProcessIdentityV1" => PidfsProcessIdentityV1, "LegacyUnverifiedProcessIdentityV1" => LegacyUnverifiedProcessIdentityV1, "HostProcessIdentity" => HostProcessIdentity, "PersistedHostProcessOwnership" => PersistedHostProcessOwnership, "HostProcessOwnershipSlot" => HostProcessOwnershipSlot, "ProcessOwnershipMessageVersion" => ProcessOwnershipMessageVersion, "StagedProcessOwnership" => StagedProcessOwnership, "ProcessOwnershipCommitAck" => ProcessOwnershipCommitAck, "GuestProcessIdentity" => GuestProcessIdentity, "SessionTerminalEvent" => SessionTerminalEvent, "TerminalInput" => TerminalInput, "TerminalResize" => TerminalResize, "TerminalSignal" => TerminalSignal, "TerminalSignalKind" => TerminalSignalKind, "SessionClose" => SessionClose, "SessionTerminalMessage" => SessionTerminalMessage, "TerminalOutput" => TerminalOutput, "SessionExit" => SessionExit, "SessionExitOutcome" => SessionExitOutcome, "GenerationIdentity" => GenerationIdentity, "TrustManifest" => TrustManifest, "TlsCredential" => TlsCredential, "ProtocolPublicationIdentity" => ProtocolPublicationIdentity, "SandboxCredentialBundle" => SandboxCredentialBundle, "TlsRole" => TlsRole, "ProtocolCredential" => ProtocolCredential, "ProtocolCredentialRole" => ProtocolCredentialRole, "SessionBinding" => SessionBinding, "SessionRequestCapability" => SessionRequestCapability, "SignedProtocolRecord" => SignedProtocolRecord, "MailboxRequest" => MailboxRequest, "MailboxCancellation" => MailboxCancellation, "MailboxResultAck" => MailboxResultAck, "DeveloperDecision" => DeveloperDecision, "DeveloperDecisionKind" => DeveloperDecisionKind, "MailboxResult" => MailboxResult, "MailboxResultChunk" => MailboxResultChunk, "ResultStream" => ResultStream, "EscalationOutcome" => EscalationOutcome, "NamespaceIdentity" => NamespaceIdentity, "MountIdentity" => MountIdentity, "PreparedLowerOwnership" => PreparedLowerOwnership, "StateAnchorOwnership" => StateAnchorOwnership, "GitRoutingOwnership" => GitRoutingOwnership, "NetworkOwnership" => NetworkOwnership, "HelperOwnership" => HelperOwnership, "SandboxOwnership" => SandboxOwnership, "PublicationOwnership" => PublicationOwnership, "PreparedArtifact" => PreparedArtifact, "ArtifactState" => ArtifactState, "ArtifactLease" => ArtifactLease, "PrepareOperation" => PrepareOperation, "AddressFamilyDisposition" => AddressFamilyDisposition, "DefaultAction" => DefaultAction, "PrefixRule" => PrefixRule, "Resolver" => Resolver, "AddressFamily" => AddressFamily, "PolicyAction" => PolicyAction, "DerivedNetworkPolicy" => DerivedNetworkPolicy, "NetworkReadinessEvidence" => NetworkReadinessEvidence, "NetworkReadinessAttestation" => NetworkReadinessAttestation, "NetworkObservation" => NetworkObservation, "PolicyDelivery" => PolicyDelivery, "NetworkReadinessIdentity" => NetworkReadinessIdentity, "NetworkReachabilityProbe" => NetworkReachabilityProbe, "DeniedDestinationObservation" => DeniedDestinationObservation, "PermittedDestinationObservation" => PermittedDestinationObservation, "DnsObservation" => DnsObservation, "TrustedHostConfigurationV1" => TrustedHostConfigurationV1, "ConfigurationFingerprintRecordV1" => ConfigurationFingerprintRecordV1, "EnvironmentReference" => EnvironmentReference, "ResolvedVolume" => ResolvedVolume, "ResolvedAutoApprovalRule" => ResolvedAutoApprovalRule, "DomainStore" => DomainStore, "StorageCatalog" => StorageCatalog; ); pub const DECLARED_RUNTIME_SCHEMA_TYPE_NAMES: &[&str] = &[ "ResolvedDomainConfiguration", "SandboxLayoutV1", "ConfinedPathPlan", ];