pub struct StreamPart<S: State> {
pub ns: Vec<String>,
pub event: &'static str,
pub data: StreamEvent<S>,
pub metadata: Option<HashMap<String, Value>>,
}Expand description
Unified stream event format – all events carry namespace information.
This wrapper type ensures that all stream events include consistent
namespace information for subgraph event disambiguation. It wraps
StreamEvent with additional metadata about the event’s source
and type.
§Examples
use juncture_core::stream::{StreamPart, StreamEvent, StreamMode};
use juncture_core::state::State;
// Create a stream part for a top-level event
let part = StreamPart {
ns: vec![],
event: "values",
data: StreamEvent::Values { state, step: 1 },
metadata: None,
};
// Create a stream part for a subgraph event
let part = StreamPart {
ns: vec!["agent".to_string(), "research".to_string()],
event: "messages",
data: StreamEvent::Messages { chunk, metadata },
metadata: None,
};Fields§
§ns: Vec<String>Event namespace path (for subgraph event disambiguation).
Empty vec![] indicates a top-level graph event.
Non-empty values represent the nesting path, e.g.,
["agent", "research"] for an event from a nested subgraph.
event: &'static strEvent type label.
A static string identifier for the event type, such as
"values", "updates", "messages", etc.
data: StreamEvent<S>Event data.
The actual stream event payload containing the state updates, message chunks, or other event-specific information.
metadata: Option<HashMap<String, Value>>Event metadata.
Optional additional metadata about the event, such as timestamps, performance metrics, or custom annotations.