Skip to main content

Event

Struct Event 

Source
pub struct Event {
    pub id: EventId,
    pub event_type: String,
    pub ts: DateTime<Utc>,
    pub session_id: SessionId,
    pub context: EventContext,
    pub data: EventData,
    pub metadata: Option<Value>,
    pub tags: Option<Vec<String>>,
    pub sequence: Option<i32>,
}
Expand description

Standard event following the Everruns event protocol.

All events have a consistent structure:

  • id: Unique event identifier (format: event_{32-hex})
  • type: Event type in dot notation (e.g., “input.message”, “reason.started”)
  • ts: ISO 8601 timestamp with millisecond precision
  • session_id: Session this event belongs to (format: session_{32-hex})
  • context: Correlation context for tracing
  • data: Event-specific payload (typed via EventData enum)
  • metadata: Optional arbitrary metadata
  • tags: Optional list of tags for filtering

Fields§

§id: EventId

Unique event identifier (format: event_{32-hex})

§event_type: String

Event type in dot notation

§ts: DateTime<Utc>

Event timestamp

§session_id: SessionId

Session this event belongs to (format: session_{32-hex})

§context: EventContext

Correlation context

§data: EventData

Event-specific payload. The schema depends on the event type. See EventData documentation for the mapping of type to data schema.

§metadata: Option<Value>

Arbitrary metadata for the event

§tags: Option<Vec<String>>

Tags for filtering and categorization

§sequence: Option<i32>

Sequence number within session (for ordering)

Implementations§

Source§

impl Event

Source

pub fn new( session_id: SessionId, context: EventContext, data: impl Into<EventData>, ) -> Self

Create a new event with the given session_id, context, and typed data

The event type is automatically inferred from the data type.

Source

pub fn with_id( id: EventId, session_id: SessionId, context: EventContext, data: impl Into<EventData>, ) -> Self

Create an event with a specific ID (for testing or replay)

Source

pub fn with_sequence(self, sequence: i32) -> Self

Set the sequence number

Source

pub fn with_metadata(self, metadata: Value) -> Self

Set metadata

Source

pub fn with_tags(self, tags: Vec<String>) -> Self

Set tags

Source

pub fn session_uuid(&self) -> Uuid

Get the session_id as raw UUID

Source

pub fn is_message_event(&self) -> bool

Check if this is an input or output message event

Source

pub fn is_ephemeral(&self) -> bool

Whether this event is ephemeral. Delta events may be delivered to listeners without ever being inserted into the events table, so any downstream storage that holds an FK to events.id must treat the reference as best-effort and skip it for ephemeral sources.

Mirror of EventRequest::is_ephemeral; both delegate to is_ephemeral_event_type so the match set stays in lockstep.

Source

pub fn is_input_event(&self) -> bool

Check if this is an input event

Source

pub fn is_output_event(&self) -> bool

Check if this is an output event

Source

pub fn is_atom_event(&self) -> bool

Check if this is an atom lifecycle event

Source

pub fn is_turn_event(&self) -> bool

Check if this is a turn lifecycle event

Source

pub fn is_session_event(&self) -> bool

Check if this is a session lifecycle event

Source

pub fn is_unsupported(&self) -> bool

Check if this event has unsupported data. Unsupported events should be filtered before API responses.

Trait Implementations§

Source§

impl Clone for Event

Source§

fn clone(&self) -> Event

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 Event

Source§

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

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

impl<'de> Deserialize<'de> for Event

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 Serialize for Event

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

Auto Trait Implementations§

§

impl Freeze for Event

§

impl RefUnwindSafe for Event

§

impl Send for Event

§

impl Sync for Event

§

impl Unpin for Event

§

impl UnsafeUnpin for Event

§

impl UnwindSafe for Event

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> 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<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<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

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> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
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> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
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> 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, 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> 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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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