Skip to main content

AuditEvent

Enum AuditEvent 

Source
pub enum AuditEvent {
Show 56 variants CommunityInstalled(CommunityInstalledData), EmergencyBootstrapInvoked(EmergencyBootstrapData), AdminPasskeyRegistered(AdminPasskeyData), AdminPasskeyRevoked(AdminPasskeyData), ConfigChanged(ConfigChangedData), ConfigReloaded(ConfigReloadedData), RestartRequested(RestartRequestedData), CommunityProfileUpdated(CommunityProfileUpdatedData), AuditKeyRotated(AuditKeyRotatedData), MemberUpdated(MemberUpdatedData), RoleChanged(RoleChangedData), AdminPromoted(AdminPromotedData), JoinRequestSubmitted(JoinRequestData), JoinRequestApproved(JoinRequestData), JoinRequestRejected(JoinRequestRejectedData), MemberAdded(MemberAddedData), MemberRemoved(MemberRemovedData), MembershipReciprocated(MembershipReciprocatedData), PolicyUploaded(PolicyUploadedData), PolicyActivated(PolicyActivatedData), VmcIssued(CredentialIssuedData), VecIssued(CredentialIssuedData), MembershipRenewed(MembershipRenewedData), StatusListFlipped(StatusListFlippedData), DidRotated(DidRotatedData), RegistryStatusChanged(RegistryStatusChangedData), RegistrySyncSucceeded(RegistrySyncOutcomeData), RegistrySyncFailed(RegistrySyncOutcomeData), RegistryRecordPolicyOverride(RegistryRecordPolicyOverrideData), CrossCommunitySessionMinted(CrossCommunitySessionMintedData), VrcPublished(VrcPublishedData), VrcRevoked(VrcRevokedData), PersonhoodAsserted(PersonhoodAssertedData), PersonhoodRevoked(PersonhoodRevokedData), CustomEndorsementIssued(CustomEndorsementIssuedData), CustomEndorsementRevoked(CustomEndorsementRevokedData), EndorsementTypeRegistered(EndorsementTypeRegisteredData), EndorsementTypeDeleted(EndorsementTypeDeletedData), WebsiteFileWritten(WebsiteFileWrittenData), WebsiteFileDeleted(WebsiteFileDeletedData), WebsiteBundleDeployed(WebsiteBundleDeployedData), WebsiteGenerationRolledBack(WebsiteGenerationRolledBackData), AdminUiServed(AdminUiServedData), AclGranted(AclChangeData), AclUpdated(AclChangeData), AclRevoked(AclRevokedData), InvitationIssued(InvitationIssuedData), InvitationRevoked(InvitationRevokedData), SessionRevoked(SessionRevokedData), SignedOut(SignedOutData), BackupExported(BackupData), BackupImported(BackupData), AdminInviteCreated(AdminInviteData), AdminInviteRevoked(AdminInviteData), SchemaRegistered(SchemaChangeData), SchemaDeleted(SchemaChangeData),
}
Expand description

Audit-event payload. Tagged on type with the variant name and the variant’s data under data. Phase-0 vocabulary only; Phase-1+ adds variants alongside the features that emit them.

Variants§

§

CommunityInstalled(CommunityInstalledData)

Bootstrap completed — the first admin DID was written into the ACL and the install carve-out was permanently closed.

§

EmergencyBootstrapInvoked(EmergencyBootstrapData)

vtc admin emergency-bootstrap was invoked with a valid master-seed mnemonic, re-opening the install carve-out exactly once. Loud event — surfaced prominently in diagnostics on next daemon start so a forgotten emergency action is impossible to miss.

§

AdminPasskeyRegistered(AdminPasskeyData)

A passkey was registered against an admin DID (initial enrol at install or a subsequent additional-device enrolment).

§

AdminPasskeyRevoked(AdminPasskeyData)

A passkey was revoked from an admin DID. The CAS check that refuses to leave zero passkeys runs before the event is emitted, so any persisted AdminPasskeyRevoked leaves at least one passkey behind.

§

ConfigChanged(ConfigChangedData)

One or more runtime configuration keys were modified via PATCH /v1/admin/config. Per-key sensitivity is honoured — values for keys flagged sensitive are redacted via ConfigChange::redact_if before persistence.

§

ConfigReloaded(ConfigReloadedData)

POST /v1/admin/config/reload applied hot-reloadable settings in-place. Lists which keys actually re-applied (a key that was unchanged-or-already-active doesn’t appear).

§

RestartRequested(RestartRequestedData)

POST /v1/admin/config/restart initiated graceful shutdown. Emitted before the process exits so the next-boot replay can correlate the restart with the prior config patches that triggered it.

§

CommunityProfileUpdated(CommunityProfileUpdatedData)

PUT /v1/community/profile updated one or more profile fields. Records which fields changed by name; the values themselves stay out of the audit log (profile data isn’t security-sensitive by nature, but keeping the event small is operator-friendly).

§

AuditKeyRotated(AuditKeyRotatedData)

The community audit_key was rotated. Emitted under the new key (the rotation itself is what creates the new epoch), so an investigator can find the row by querying the audit_by_type index without needing to walk the prior epoch.

§

MemberUpdated(MemberUpdatedData)

PATCH /v1/members/{did} updated profile or non-role metadata on a member’s record. Lists the field names that changed; values stay out of the envelope.

§

RoleChanged(RoleChangedData)

PATCH /v1/members/{did} reassigned the member’s role. Distinct event from MemberUpdated because role changes are security-significant — SIEM filters key on this variant separately. Admin promotion uses [AdminPromoted] instead (spec §10.4 keeps the two paths separate).

§

AdminPromoted(AdminPromotedData)

POST /v1/members/{did}/promote-to-admin finished with a successful step-up UV ceremony. Spec §10.4 makes this its own variant (distinct from RoleChanged) so SIEM rules can target it; admin elevation is the highest- privilege grant the community emits.

§

JoinRequestSubmitted(JoinRequestData)

POST /v1/join-requests (REST or DIDComm) accepted a well-formed submission and persisted it as Pending. The actor on this event is the applicant DID — they’re the principal, even though the daemon’s authenticated identity did not vouch for them.

§

JoinRequestApproved(JoinRequestData)

An admin / moderator approved a pending join request via POST /v1/join-requests/{id}/approve. Always paired with a MemberAdded emission in the same transaction (the approve flow writes the ACL + Member rows atomically).

§

JoinRequestRejected(JoinRequestRejectedData)

An admin / moderator rejected a pending join request. The reason field is operator-supplied and may be empty.

§

MemberAdded(MemberAddedData)

New member row written. Companion event to JoinRequestApproved — the latter is what an audit query for “who approved this” matches, the former is what “when did join” matches. Spec §10.1.

§

MemberRemoved(MemberRemovedData)

Member row removed (or anonymised) per spec §10.2. Spec §5 Disposition decides whether the row is purged outright, tombstoned with the DID retained, or kept historical.

§

MembershipReciprocated(MembershipReciprocatedData)

A member discharged the reciprocate_vmc obligation: they counter-signed the issued VMC with a member-issued reciprocal VC, completing the bidirectional DTG membership edge (join-requests/accept/1.0). The audit envelope’s target_did carries the member.

§

PolicyUploaded(PolicyUploadedData)

POST /v1/policies accepted an upload, compiled the source, and persisted a new revision. The row is not yet active — activation is a separate event. Spec §7.1; Phase 2 M2.3.

§

PolicyActivated(PolicyActivatedData)

POST /v1/policies/{id}/activate flipped the active pointer for a purpose. Carries the predecessor’s id so a forensic audit can chain backwards through revisions without scanning the whole policies: keyspace. Spec §7.1; Phase 2 M2.3.

§

VmcIssued(CredentialIssuedData)

A new VMC was minted (join-approve or renewal). Spec §6.1.

§

VecIssued(CredentialIssuedData)

A new role VEC was minted (join-approve, renewal, or role change). Spec §6.1.

§

MembershipRenewed(MembershipRenewedData)

POST /v1/members/me/renew re-minted the member’s VMC + role VEC. Spec §6.3. personhood_changed flips when the renewal’s personhood.rego re-eval produced a different flag than the prior VMC.

§

StatusListFlipped(StatusListFlippedData)

A status-list bit was flipped (revocation / suspension). Spec §6.2.

§

DidRotated(DidRotatedData)

A member rotated to a fresh DID. The audit envelope’s actor_did is the new DID (it’s the principal going forward); the prior DID lives in the data struct. Spec §10.5; Phase 2 M2.15.

§

RegistryStatusChanged(RegistryStatusChangedData)

The daemon’s trust-registry reachability state flipped (activedegraded). Spec §8.1; Phase 3 M3.2. SIEM filters key on this to alert when the registry connection drops or recovers.

§

RegistrySyncSucceeded(RegistrySyncOutcomeData)

A MembershipSyncer job completed successfully against the registry. Spec §8.3; Phase 3 M3.4.

§

RegistrySyncFailed(RegistrySyncOutcomeData)

A MembershipSyncer job flipped to the Failed state after exhausting its retry budget. Spec §8.3 calls these out for operator attention — failed Purge jobs are silent privacy regressions. Phase 3 M3.4.

§

RegistryRecordPolicyOverride(RegistryRecordPolicyOverrideData)

A member-initiated Purge (RTBF) bypassed the active registry.rego.min_disposition floor. Spec §8.2 calls these out: RTBF always overrides the policy envelope. The audit envelope’s actor_did_hash is the HMAC-hashed identifier per §11.1; the actor_did_plain field is None for these envelopes (privacy-preserving by construction). Phase 3 M3.6.

§

CrossCommunitySessionMinted(CrossCommunitySessionMintedData)

A cross-community session was minted (or denied). Spec §8.4; Phase 3 M3.10. The outcome field discriminates minted from denied; the reason is populated only on denied and carries one of [RecognitionError]’s stable reason codes (issuer-key-unresolved / proof-invalid / status-list-failed / issuer-not-recognised / registry-unreachable / validity-window / malformed / role-mapping-denied).

§

VrcPublished(VrcPublishedData)

A member published a self-issued Verifiable Recognition Credential (VRC) — a trust edge issuer-member → subject- member per spec §5.4 + §6.1. Phase 4 M4.6. The actor is the issuer; the target is the subject DID.

§

VrcRevoked(VrcRevokedData)

A VRC was revoked — either by the original issuer or by an admin acting on behalf of the community. Phase 4 M4.6. Per D7, VRCs carry no credentialStatus; revocation is row deletion in the local relationships: keyspace.

§

PersonhoodAsserted(PersonhoodAssertedData)

A member’s personhood flag was asserted true via POST /v1/members/{did}/personhood/assert. Phase 4 M4.3. The actor is the asserter (admin or issuer); the target is the member. Per D2 review (VP-only assert), the presented evidence is verified at assert time and discarded — no evidence_sha256 field on this envelope.

§

PersonhoodRevoked(PersonhoodRevokedData)

A member’s personhood flag was revoked. Phase 4 M4.4 + M4.2.2. The reason discriminator pins which of the three triggers fired: "admin" (admin DELETE), "self" (member DELETE), or "renewal-policy" (renewal-time policy downgrade per D5 review’s downgrade arm).

§

CustomEndorsementIssued(CustomEndorsementIssuedData)

A custom (non-role) endorsement credential was issued by an issuer or admin. Phase 4 M4.8. Per D8 review, the credential carries a credentialStatus entry on the shared Revocation status list — status_list_index records the allocated slot.

§

CustomEndorsementRevoked(CustomEndorsementRevokedData)

A custom endorsement was revoked. Phase 4 M4.8. Flips the Revocation status-list bit at the credential’s status_list_index. Paired with a StatusListFlipped { purpose: "revocation", index, revoked: true } envelope (existing variant) so the status-list audit surface stays uniform.

§

EndorsementTypeRegistered(EndorsementTypeRegisteredData)

An operator registered a new custom endorsement type via POST /v1/endorsement-types. Phase 4 M4.8.1 (D4 review). The actor is the admin; the type_uri field records what was registered.

§

EndorsementTypeDeleted(EndorsementTypeDeletedData)

An operator deleted a custom endorsement type via DELETE /v1/endorsement-types/{uri}. Phase 4 M4.8.1. The registry refuses deletion when at least one live endorsement of this type still exists; this envelope only fires after a successful delete.

§

WebsiteFileWritten(WebsiteFileWrittenData)

PUT /v1/website/files/{path} succeeded. Phase 5 M5.5.2. Records the path + size + SHA-256 of the new content so the audit log carries enough material to reconstruct a deploy without persisting the full file body.

§

WebsiteFileDeleted(WebsiteFileDeletedData)

DELETE /v1/website/files/{path} succeeded. Phase 5 M5.5.2. Records the path; no content digest because the file no longer exists.

§

WebsiteBundleDeployed(WebsiteBundleDeployedData)

POST /v1/website/deploy succeeded. Phase 5 M5.5.3. Captures the bundle’s SHA-256, byte size, target deploy mode, and (managed mode only) the new generation number

  • how many old generations were pruned.
§

WebsiteGenerationRolledBack(WebsiteGenerationRolledBackData)

POST /v1/website/rollback/{gen} succeeded. Phase 5 M5.5.4. Managed mode only. Records the symlink swap so the audit log surfaces which generation served before vs. after.

§

AdminUiServed(AdminUiServedData)

Emitted exactly once at daemon boot when the embedded admin UX (admin-ui cargo feature) is enabled. Captures the SHA-256 of the baked index.html so an operator can correlate which build of the admin SPA is currently serving. Phase 5 M5.7.2.

§

AclGranted(AclChangeData)

An ACL entry was created — a DID was granted a community role (POST /v1/acl). Authorization grants are the highest-value forensic events: this records who now holds what authority, scoped to which contexts, until when. Envelope target_did is the granted DID.

§

AclUpdated(AclChangeData)

An existing ACL entry was modified (PATCH /v1/acl/{did}) — role / contexts / expiry changed. Envelope target_did is the affected DID; the payload carries the new state.

§

AclRevoked(AclRevokedData)

An ACL entry was deleted (DELETE /v1/acl/{did}) — the DID lost its community authority. Envelope target_did is the revoked DID.

§

InvitationIssued(InvitationIssuedData)

A Verifiable Invitation Credential (VIC) was issued (POST /v1/invitations). Records the invitee, granted role, and the revocation slot so the credential’s whole lifecycle is traceable. Envelope target_did is the invitee.

§

InvitationRevoked(InvitationRevokedData)

An invitation was revoked (DELETE /v1/invitations/{id}) — its revocation bit flipped. Envelope target_did is the invitee.

§

SessionRevoked(SessionRevokedData)

One or more authenticated sessions were revoked by an admin (DELETE /v1/auth/sessions/{id} or ?did=). Cutting off access is security-relevant and must be attributable. Envelope target_did is the session owner (when revoking by DID).

§

SignedOut(SignedOutData)

A principal ended their own session (POST /v1/auth/sign-out).

Deliberately distinct from Self::SessionRevoked rather than a flag on it: voluntary sign-out is routine, admin-forced revocation is a security signal, and a SIEM rule that has to tell them apart by comparing actor to target will get it wrong the first time an admin revokes their own session. Same reasoning as Self::AdminPromoted versus Self::RoleChanged.

§

BackupExported(BackupData)

An encrypted state backup was exported (POST /v1/backup/export).

§

BackupImported(BackupData)

An encrypted state backup was imported, restoring community state (POST /v1/backup/import). A full-state restore is among the most sensitive operations — recorded so a restore is never silent.

§

AdminInviteCreated(AdminInviteData)

An admin onboarding invite was minted (POST /v1/admin/invites), optionally pre-creating an ACL grant. Envelope target_did is the invited admin DID (when bound to one).

§

AdminInviteRevoked(AdminInviteData)

An admin onboarding invite was revoked (DELETE /v1/admin/invites/{jti}).

§

SchemaRegistered(SchemaChangeData)

A credential schema or accepts-criterion was registered (POST /v1/schemas or /v1/schemas/accepts) — what the community accepts/recognises changed.

§

SchemaDeleted(SchemaChangeData)

A credential schema or accepts-criterion was deleted (DELETE /v1/schemas/{type_uri} or /v1/schemas/accepts/{id}).

Implementations§

Source§

impl AuditEvent

Source

pub fn variant_name(&self) -> &'static str

The serde tag for this variant — the same string that appears as {"type": ...} on the stored envelope.

This is what the canonical audit/list Trust Task exposes as action, and what audit/list’s action filter matches on, so it must stay identical to the serialized tag. Kept as an explicit match (rather than round-tripping through serde_json) so listing does not pay a serialization per row just to learn the name.

Trait Implementations§

Source§

impl Clone for AuditEvent

Source§

fn clone(&self) -> AuditEvent

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AuditEvent

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for AuditEvent

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for AuditEvent

Source§

impl PartialEq for AuditEvent

Source§

fn eq(&self, other: &AuditEvent) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for AuditEvent

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for AuditEvent

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> At for T

Source§

fn at<M>(self, metadata: M) -> Meta<T, M>

Wraps self inside a Meta<Self, M> using the given metadata. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> BorrowStripped for T

Source§

fn stripped(&self) -> &Stripped<T>

Source§

impl<T> BorrowUnordered for T

Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<'de, T, C> DeserializeTyped<'de, C> for T
where T: Deserialize<'de>,

Source§

fn deserialize_typed<S>( _: &C, deserializer: S, ) -> Result<T, <S as Deserializer<'de>>::Error>
where S: Deserializer<'de>,

Source§

impl<T, U> DeserializeTypedOwned<T> for U
where U: for<'de> DeserializeTyped<'de, T>,

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T, C> FromWithContext<T, C> for T

Source§

fn from_with(value: T, _context: &C) -> T

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U, C> IntoWithContext<U, C> for T
where U: FromWithContext<T, C>,

Source§

fn into_with(self, context: &C) -> U

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> ResourceProvider<()> for T

Source§

fn get_resource(&self) -> &()

Returns a reference to the resource of type T.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToOwned for T

Source§

type Owned = T

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U, C> TryFromWithContext<U, C> for T
where U: IntoWithContext<T, C>,

Source§

type Error = Infallible

Source§

fn try_from_with( value: U, context: &C, ) -> Result<T, <T as TryFromWithContext<U, C>>::Error>

Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T, U, C> TryIntoWithContext<U, C> for T
where U: TryFromWithContext<T, C>,

Source§

type Error = <U as TryFromWithContext<T, C>>::Error

Source§

fn try_into_with( self, context: &C, ) -> Result<U, <T as TryIntoWithContext<U, C>>::Error>

Source§

impl<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithContext for T
where T: ?Sized,

Source§

fn with<C>(&self, context: C) -> Contextual<&T, C>

Source§

fn into_with<C>(self, context: C) -> Contextual<T, C>
where T: Sized,

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more