pub struct ActivityEntry {
pub id: u64,
pub timestamp: DateTime<Utc>,
pub source: ActivitySource,
pub palace_id: Option<String>,
pub event_type: String,
pub payload: String,
}Expand description
A single persisted activity entry.
Why: the feed UI needs a flat, self-describing row that can be rendered
without re-deriving the event type from the payload. Persisting the
payload as a JSON string keeps the schema stable across DaemonEvent
changes — adding a new variant only needs an event_type string update,
not a redb migration.
What: serde-serialised value-type stored under a monotonic u64 id.
Fields:
id— monotonic ULID-equivalent (just a u64 counter).timestamp— wall-clock UTC when the entry was recorded.source— originating subsystem (Http,Mcp,Hook).palace_id—Nonefor daemon-wide events (dream_run).event_type—DaemonEventdiscriminant ("drawer_added", etc.).payload— JSON-serialised body of the matchingDaemonEventvariant so the UI can render the same shape it already handles.
Test: entry_serde_round_trip.
Fields§
§id: u64§timestamp: DateTime<Utc>§source: ActivitySource§palace_id: Option<String>§event_type: String§payload: StringJSON-encoded DaemonEvent body so the feed renders the same shape
it already understands from the live SSE stream.
Trait Implementations§
Source§impl Clone for ActivityEntry
impl Clone for ActivityEntry
Source§fn clone(&self) -> ActivityEntry
fn clone(&self) -> ActivityEntry
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 ActivityEntry
impl Debug for ActivityEntry
Source§impl<'de> Deserialize<'de> for ActivityEntry
impl<'de> Deserialize<'de> for ActivityEntry
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
Auto Trait Implementations§
impl Freeze for ActivityEntry
impl RefUnwindSafe for ActivityEntry
impl Send for ActivityEntry
impl Sync for ActivityEntry
impl Unpin for ActivityEntry
impl UnsafeUnpin for ActivityEntry
impl UnwindSafe for ActivityEntry
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,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more