Skip to main content

parse_message

Function parse_message 

Source
pub fn parse_message(data: &Value) -> Result<Option<Message>, MessageParseError>
Expand description

Parses a raw JSON value from the CLI into a typed Message.

§Arguments

  • data — A JSON value representing a single message from the CLI output stream.

§Returns

  • Ok(Some(message)) — Successfully parsed into a known message type.
  • Ok(None) — The message type is unrecognized (silently skipped).
  • Err(MessageParseError) — The message is malformed or missing required fields.

§Supported message types

type fieldParsed into
"user"Message::User
"assistant"Message::Assistant
"system"Message::System
"result"Message::Result
"stream_event"Message::StreamEvent

§Example

use claude_code::{parse_message, Message};
use serde_json::json;

let raw = json!({
    "type": "system",
    "subtype": "initialized"
});

let parsed = parse_message(&raw).unwrap();
assert!(matches!(parsed, Some(Message::System(_))));