pub struct UserGdprState {
pub schema_version: u16,
pub status: GdprStatus,
}Expand description
GDPR lifecycle pointer — its own single-field Component (exactly one per User) and the sole source of truth for erasure eligibility.
Split out of UserProfile so a lifecycle transition is a blind, TOTAL
set_component write: the viewless dispatch-path compute (see
crate::bridge) cannot read existing kernel state, so it cannot
read-modify-write a bundled struct without clobbering its other fields.
A standalone single-field component makes the transition a correct total
write with no read. The blind write commits only for a SPAWNED user
entity — the kernel ledger treats SetComponent on an unknown entity as
a no-op — which RegisterUser guarantees (it spawns the user entity
before seeding this component), so every registered user is reachable by
the transition. The admission gate
(ActionContext::ensure_actor_eligible)
reads THIS component; a resolved binding whose user lacks one fails
closed
(ActionError::UserLifecycleUnresolved)
— a freshly registered user always carries one (RegisterUser seeds
Active).
Fields§
§schema_version: u16Wire-level schema version tag (A15 succession).
status: GdprStatusGDPR lifecycle pointer.
Trait Implementations§
Source§impl ArkheComponent for UserGdprState
impl ArkheComponent for UserGdprState
Source§impl Clone for UserGdprState
impl Clone for UserGdprState
Source§fn clone(&self) -> UserGdprState
fn clone(&self) -> UserGdprState
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for UserGdprState
Source§impl Debug for UserGdprState
impl Debug for UserGdprState
Source§impl<'de> Deserialize<'de> for UserGdprState
impl<'de> Deserialize<'de> for UserGdprState
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>,
impl Eq for UserGdprState
Source§impl PartialEq for UserGdprState
impl PartialEq for UserGdprState
Source§fn eq(&self, other: &UserGdprState) -> bool
fn eq(&self, other: &UserGdprState) -> bool
self and other values to be equal, and is used by ==.