Expand description
Core message types for Claude communication.
This module defines the primary message structures used in the Claude protocol:
ClaudeInput- Messages sent to ClaudeClaudeOutput- Messages received from ClaudeContentBlock- Different types of content within messages
§Message Flow
- Create a
ClaudeInputwith your query - Send it to Claude via a client
- Receive
ClaudeOutputmessages in response - Handle different output types (System, Assistant, Result)
§Example
use claude_codes::{ClaudeInput, ClaudeOutput};
// Create an input message
let input = ClaudeInput::user_message("Hello, Claude!", uuid::Uuid::new_v4());
// Parse an output message
let json = r#"{"type":"assistant","message":{"role":"assistant","content":[]}}"#;
match ClaudeOutput::parse_json(json) {
Ok(output) => println!("Got: {}", output.message_type()),
Err(e) => eprintln!("Parse error: {}", e),
}Structs§
- Assistant
Message - Assistant message
- Assistant
Message Content - Nested message content for assistant messages
- Image
Block - Image content block (follows Anthropic API structure)
- Image
Source - Image source information
- McpHttp
Server Config - MCP HTTP server configuration
- McpSse
Server Config - MCP SSE server configuration
- McpStdio
Server Config - MCP stdio server configuration
- Message
Content - Message content with role
- Parse
Error - Error type for parsing failures that preserves the raw JSON
- Result
Message - Result message for completed queries
- Server
Tool Use - Server tool usage information
- System
Message - System message with metadata
- Text
Block - Text content block
- Thinking
Block - Thinking content block
- Tool
Result Block - Tool result content block
- Tool
UseBlock - Tool use content block
- Usage
Info - Usage information for the request
- User
Message - User message
Enums§
- Claude
Input - Top-level enum for all possible Claude input messages
- Claude
Output - Top-level enum for all possible Claude output messages
- Content
Block - Content blocks for messages
- McpServer
Config - MCP Server configuration types
- Permission
Mode - Permission mode for Claude operations
- Result
Subtype - Result subtypes
- Tool
Result Content - Tool result content type