Skip to main content

ExecutionNode

Struct ExecutionNode 

Source
pub struct ExecutionNode {
Show 15 fields pub uuid: Option<String>, pub parent_uuid: Option<String>, pub timestamp: Option<i64>, pub node_type: NodeType, pub is_sidechain: Option<bool>, pub session_id: Option<String>, pub cwd: Option<String>, pub message: Option<Message>, pub tool_use: Option<ToolUse>, pub tool_result: Option<ToolResult>, pub tool_use_result: Option<Value>, pub thinking: Option<String>, pub progress: Option<Progress>, pub token_usage: Option<TokenUsage>, pub extra: Option<HashMap<String, Value>>,
}
Expand description

A single execution node in the Claude Code session tree

Represents any event in the transcript: user messages, assistant responses, tool calls, thinking blocks, etc. Nodes are linked via uuid/parentUuid.

Fields§

§uuid: Option<String>

Unique identifier for this node

§parent_uuid: Option<String>

Parent node UUID (for building hierarchy). The JSONL field is camelCase parentUuid — must match exactly.

§timestamp: Option<i64>

Timestamp in milliseconds (accepts both ISO 8601 string and number)

§node_type: NodeType

Node type (user, assistant, progress, system, file-history-snapshot, …)

§is_sidechain: Option<bool>

Whether this node belongs to a sidechain (subagent parallel execution).

§session_id: Option<String>

Session ID this node belongs to (mirrors the filename stem).

§cwd: Option<String>

Working directory at the time of this node.

§message: Option<Message>

Message content (for user/assistant messages)

§tool_use: Option<ToolUse>

Tool use details (legacy top-level format — real data uses ContentBlock::ToolUse)

§tool_result: Option<ToolResult>

Tool result (legacy top-level format — real data uses ContentBlock::ToolResult)

§tool_use_result: Option<Value>

Tool use result (raw tool output - can be string or object)

§thinking: Option<String>

Thinking content (legacy top-level format)

§progress: Option<Progress>

Progress updates (legacy field — real data stores progress details in extra["data"])

§token_usage: Option<TokenUsage>

Token usage statistics

§extra: Option<HashMap<String, Value>>

Additional metadata (optional to save memory when not present)

Implementations§

Source§

impl ExecutionNode

Source

pub fn effective_token_usage(&self) -> Option<&TokenUsage>

Returns token usage for this node.

Claude Code stores usage inside message.usage, not at the top level. This helper checks both places so callers don’t need to know the layout.

Source

pub fn has_error(&self) -> bool

Returns true if this node represents a tool error.

Checks all known error signals in one place:

  1. tool_result.is_error flag
  2. <tool_use_error> tag in tool_result.content
  3. toolUseResult (raw JSON) deserialized as ToolResult with is_error
  4. ContentBlock::ToolResult with is_error or <tool_use_error> content

Trait Implementations§

Source§

impl Clone for ExecutionNode

Source§

fn clone(&self) -> ExecutionNode

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ExecutionNode

Source§

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

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

impl<'de> Deserialize<'de> for ExecutionNode

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 ExecutionNode

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§

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

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
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<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
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,