#[non_exhaustive]pub struct AccessInvalidatedPayload {
pub user_ids: Vec<Uuid>,
pub role_ids: Vec<Uuid>,
}Expand description
Cross-controller access-cache invalidation event.
Published to the controller NATS subject by the controller that mutated
access grants or role assignments (mutation sites land in M1.6a).
Receivers flush their entire access-authority cache — the subject
lists are observability and forward-compat detail, not a promise of
granular invalidation. There is deliberately no tenant_id field: a
global (NULL-tenant) user grant surfaces in every tenant’s cache entry
for that user, so receivers must always flush across tenants. Both lists
may be empty.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.user_ids: Vec<Uuid>Users whose grant rows or role assignments changed.
role_ids: Vec<Uuid>Roles whose grant rows changed.
Implementations§
Trait Implementations§
Source§impl Clone for AccessInvalidatedPayload
impl Clone for AccessInvalidatedPayload
Source§fn clone(&self) -> AccessInvalidatedPayload
fn clone(&self) -> AccessInvalidatedPayload
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AccessInvalidatedPayload
impl Debug for AccessInvalidatedPayload
Source§impl<'de> Deserialize<'de> for AccessInvalidatedPayload
impl<'de> Deserialize<'de> for AccessInvalidatedPayload
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for AccessInvalidatedPayload
Source§impl PartialEq for AccessInvalidatedPayload
impl PartialEq for AccessInvalidatedPayload
Source§impl Serialize for AccessInvalidatedPayload
impl Serialize for AccessInvalidatedPayload
impl StructuralPartialEq for AccessInvalidatedPayload
Source§impl WireValidate for AccessInvalidatedPayload
impl WireValidate for AccessInvalidatedPayload
Source§fn wire_validate(&self) -> Result<(), WireValidationError>
fn wire_validate(&self) -> Result<(), WireValidationError>
Validate that all fields are within wire protocol size limits.
Auto Trait Implementations§
impl Freeze for AccessInvalidatedPayload
impl RefUnwindSafe for AccessInvalidatedPayload
impl Send for AccessInvalidatedPayload
impl Sync for AccessInvalidatedPayload
impl Unpin for AccessInvalidatedPayload
impl UnsafeUnpin for AccessInvalidatedPayload
impl UnwindSafe for AccessInvalidatedPayload
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.