opencode_sdk/types/
file.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
7#[serde(rename_all = "camelCase")]
8pub struct FileInfo {
9 pub path: String,
11 #[serde(default, skip_serializing_if = "Option::is_none")]
13 pub size: Option<u64>,
14 #[serde(default)]
16 pub is_directory: bool,
17 #[serde(default, skip_serializing_if = "Option::is_none")]
19 pub modified: Option<i64>,
20}
21
22#[derive(Debug, Clone, Serialize, Deserialize)]
24#[serde(rename_all = "camelCase")]
25pub struct FileContent {
26 pub path: String,
28 pub content: String,
30 #[serde(default, skip_serializing_if = "Option::is_none")]
32 pub mime: Option<String>,
33 #[serde(default, skip_serializing_if = "Option::is_none")]
35 pub encoding: Option<String>,
36}
37
38#[derive(Debug, Clone, Serialize, Deserialize)]
40#[serde(rename_all = "camelCase")]
41pub struct FileStatus {
42 pub path: String,
44 pub status: String,
46 #[serde(default)]
48 pub staged: bool,
49}
50
51#[derive(Debug, Clone, Default, Serialize, Deserialize)]
53#[serde(rename_all = "camelCase")]
54pub struct ListFilesRequest {
55 #[serde(default, skip_serializing_if = "Option::is_none")]
57 pub path: Option<String>,
58 #[serde(default)]
60 pub recursive: bool,
61 #[serde(default, skip_serializing_if = "Option::is_none")]
63 pub limit: Option<u32>,
64}
65
66#[derive(Debug, Clone, Serialize, Deserialize)]
68#[serde(rename_all = "camelCase")]
69pub struct ReadFileRequest {
70 pub path: String,
72 #[serde(default, skip_serializing_if = "Option::is_none")]
74 pub start_line: Option<u32>,
75 #[serde(default, skip_serializing_if = "Option::is_none")]
77 pub end_line: Option<u32>,
78}