pub enum ClaudeInput {
User(UserMessage),
ControlRequest(ControlRequest),
ControlResponse(ControlResponse),
Raw(Value),
}Expand description
Top-level enum for all possible Claude input messages.
Keep variants unboxed so pattern matches and constructors stay ergonomic.
Variants§
User(UserMessage)
User message input
ControlRequest(ControlRequest)
Control request (for initialization handshake)
ControlResponse(ControlResponse)
Control response (for tool permission responses)
Raw(Value)
Raw JSON for untyped messages
Implementations§
Source§impl ClaudeInput
impl ClaudeInput
Sourcepub fn user_message(text: impl Into<String>, session_id: Uuid) -> Self
pub fn user_message(text: impl Into<String>, session_id: Uuid) -> Self
Create a simple text user message
Sourcepub fn user_message_blocks(blocks: Vec<ContentBlock>, session_id: Uuid) -> Self
pub fn user_message_blocks(blocks: Vec<ContentBlock>, session_id: Uuid) -> Self
Create a user message with content blocks
Sourcepub fn interrupt(request_id: impl Into<String>) -> Self
pub fn interrupt(request_id: impl Into<String>) -> Self
Create an interrupt control request.
Serializes to the control_request envelope the CLI requires:
{"type":"control_request","request_id":...,"request":{"subtype":"interrupt"}},
telling Claude to stop its current response and return control
without killing the session. The CLI acknowledges with a
control_response carrying the same request_id.
request_id must be unique per request; the clients generate
interrupt-<uuid> ids.
Trait Implementations§
Source§impl Clone for ClaudeInput
impl Clone for ClaudeInput
Source§fn clone(&self) -> ClaudeInput
fn clone(&self) -> ClaudeInput
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more