pub struct WatchEvent {
pub experience_id: ExperienceId,
pub collective_id: CollectiveId,
pub event_type: WatchEventType,
pub timestamp: Timestamp,
pub experience: Option<Experience>,
}Expand description
An event emitted when an experience changes.
Watch events are delivered in-process via bounded crossbeam channels. Each event identifies the experience, collective, mutation type, and when it occurred.
§Example
use futures::StreamExt;
use pulsedb::WatchEventType;
let mut stream = db.watch_experiences(collective_id)?;
while let Some(event) = stream.next().await {
match event.event_type {
WatchEventType::Created => println!("New experience: {}", event.experience_id),
WatchEventType::Deleted => println!("Removed: {}", event.experience_id),
_ => {}
}
}Fields§
§experience_id: ExperienceIdThe experience that changed.
collective_id: CollectiveIdThe collective the experience belongs to.
event_type: WatchEventTypeWhat kind of change occurred.
timestamp: TimestampWhen the change occurred.
experience: Option<Experience>The full experience data (enriched event).
Populated for Created and Updated events when delivered via
in-process watch subscriptions. None for Deleted events and
events reconstructed from WAL records (cross-process polling).
Includes the embedding vector, enabling visualization tools (PulseVision) to update 3D positions without a follow-up fetch.
Trait Implementations§
Source§impl Clone for WatchEvent
impl Clone for WatchEvent
Source§fn clone(&self) -> WatchEvent
fn clone(&self) -> WatchEvent
Returns a duplicate of the value. Read more
1.0.0 · 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 WatchEvent
impl Debug for WatchEvent
Source§impl From<WatchEventRecord> for WatchEvent
impl From<WatchEventRecord> for WatchEvent
Source§fn from(record: WatchEventRecord) -> Self
fn from(record: WatchEventRecord) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl Freeze for WatchEvent
impl RefUnwindSafe for WatchEvent
impl Send for WatchEvent
impl Sync for WatchEvent
impl Unpin for WatchEvent
impl UnsafeUnpin for WatchEvent
impl UnwindSafe for WatchEvent
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