pub struct Event {
pub id: EventId,
pub schema_version: u32,
pub ts_ms: i64,
pub actor: ActorRef,
pub kind: String,
pub payload: Value,
pub causation_id: Option<EventId>,
pub correlation_id: Option<String>,
}Fields§
§id: EventId§schema_version: u32§ts_ms: i64§actor: ActorRef§kind: String§payload: Value§causation_id: Option<EventId>§correlation_id: Option<String>Implementations§
Source§impl Event
impl Event
Sourcepub fn new(actor: ActorRef, kind: impl Into<String>, payload: JsonValue) -> Self
pub fn new(actor: ActorRef, kind: impl Into<String>, payload: JsonValue) -> Self
Examples found in repository?
examples/behavior_subscription.rs (lines 34-38)
8async fn main() -> Result<(), Box<dyn std::error::Error>> {
9 let state = YoAgentState::load(MemoryEventStore::new()).await?;
10 let mut runtime = YoAgentRuntime::new(state.clone());
11
12 runtime.register_behavior(FnBehavior::new(
13 BehaviorId::new("behavior_failure_to_task"),
14 EventPattern::Kind("failure.observed".to_string()),
15 |_ctx: BehaviorContext, event: Event| async move {
16 let title = event
17 .payload
18 .get("title")
19 .and_then(|value| value.as_str())
20 .unwrap_or("Investigate failure");
21 Ok(vec![StateOp::CreateNode {
22 id: NodeId::new("task_from_failure"),
23 kind: "task".to_string(),
24 props: json!({
25 "title": format!("Investigate: {title}"),
26 "status": "Open",
27 "created_by_behavior": "behavior_failure_to_task",
28 }),
29 }])
30 },
31 ));
32
33 runtime
34 .emit_event(Event::new(
35 ActorRef::agent("demo"),
36 "failure.observed",
37 json!({ "title": "retry timeout loses state" }),
38 ))
39 .await?;
40
41 print!(
42 "{}",
43 state
44 .lineage(NodeId::new("task_from_failure"))
45 .await
46 .to_markdown()
47 );
48 Ok(())
49}pub fn with_causation(self, event_id: EventId) -> Self
pub fn with_correlation(self, correlation_id: impl Into<String>) -> Self
pub fn payload_as<T>(&self) -> Result<T, StateError>where
T: for<'de> Deserialize<'de>,
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Event
impl<'de> Deserialize<'de> for Event
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 StructuralPartialEq for Event
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> 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