Skip to main content

gproxy_protocol/protocol/claude/common/server_tools/
text_editor.rs

1use serde::{Deserialize, Serialize};
2
3use super::super::JsonObject;
4
5#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
6#[non_exhaustive]
7pub struct TextEditorCodeExecutionViewResultBlock {
8    pub content: String,
9    pub file_type: TextEditorCodeExecutionFileType,
10    #[serde(rename = "type")]
11    pub type_: TextEditorCodeExecutionViewResultBlockType,
12    #[serde(skip_serializing_if = "Option::is_none")]
13    pub num_lines: Option<u64>,
14    #[serde(skip_serializing_if = "Option::is_none")]
15    pub start_line: Option<u64>,
16    #[serde(skip_serializing_if = "Option::is_none")]
17    pub total_lines: Option<u64>,
18    #[serde(default, flatten, skip_serializing_if = "JsonObject::is_empty")]
19    pub extra: JsonObject,
20}
21
22#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
23#[non_exhaustive]
24pub enum TextEditorCodeExecutionFileType {
25    #[serde(rename = "text")]
26    Text,
27    #[serde(rename = "image")]
28    Image,
29    #[serde(rename = "pdf")]
30    Pdf,
31}
32
33#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
34#[non_exhaustive]
35pub enum TextEditorCodeExecutionViewResultBlockType {
36    #[serde(rename = "text_editor_code_execution_view_result")]
37    TextEditorCodeExecutionViewResult,
38}
39
40#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
41#[non_exhaustive]
42pub struct TextEditorCodeExecutionCreateResultBlock {
43    pub is_file_update: bool,
44    #[serde(rename = "type")]
45    pub type_: TextEditorCodeExecutionCreateResultBlockType,
46    #[serde(default, flatten, skip_serializing_if = "JsonObject::is_empty")]
47    pub extra: JsonObject,
48}
49
50#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
51#[non_exhaustive]
52pub enum TextEditorCodeExecutionCreateResultBlockType {
53    #[serde(rename = "text_editor_code_execution_create_result")]
54    TextEditorCodeExecutionCreateResult,
55}
56
57#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, gproxy_protocol_macros::WireBuilder)]
58#[non_exhaustive]
59pub struct TextEditorCodeExecutionStrReplaceResultBlock {
60    #[serde(rename = "type")]
61    pub type_: TextEditorCodeExecutionStrReplaceResultBlockType,
62    #[serde(skip_serializing_if = "Option::is_none")]
63    pub lines: Option<Vec<String>>,
64    #[serde(skip_serializing_if = "Option::is_none")]
65    pub new_lines: Option<u64>,
66    #[serde(skip_serializing_if = "Option::is_none")]
67    pub new_start: Option<u64>,
68    #[serde(skip_serializing_if = "Option::is_none")]
69    pub old_lines: Option<u64>,
70    #[serde(skip_serializing_if = "Option::is_none")]
71    pub old_start: Option<u64>,
72    #[serde(default, flatten, skip_serializing_if = "JsonObject::is_empty")]
73    pub extra: JsonObject,
74}
75
76#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
77#[non_exhaustive]
78pub enum TextEditorCodeExecutionStrReplaceResultBlockType {
79    #[serde(rename = "text_editor_code_execution_str_replace_result")]
80    TextEditorCodeExecutionStrReplaceResult,
81}