Skip to main content

gitee_rs/files/
models.rs

1use serde::{Deserialize, Serialize};
2use crate::utils::deserialize_string_or_int;
3
4#[derive(Debug, Clone, Deserialize, Serialize)]
5pub struct FileContent {
6    pub name: String,
7    pub path: String,
8    #[serde(deserialize_with = "deserialize_string_or_int")]
9    pub sha: String,  // Gitee API may return string or integer IDs
10    pub size: Option<i32>,
11    #[serde(default)]
12    pub url: String,
13    #[serde(default)]
14    pub html_url: String,
15    #[serde(default)]
16    pub git_url: String,
17    #[serde(default)]
18    pub download_url: String,
19    #[serde(rename = "type")]
20    pub file_type: String, // "file", "dir"
21    pub content: Option<String>,
22    #[serde(default)]
23    pub encoding: Option<String>,
24}
25
26#[derive(Debug, Clone, Deserialize, Serialize)]
27pub struct RepoFile {
28    pub name: String,
29    pub path: String,
30    #[serde(deserialize_with = "deserialize_string_or_int")]
31    pub sha: String,  // Gitee API may return string or integer IDs
32    pub size: Option<i32>,
33    #[serde(default)]
34    pub url: String,
35    #[serde(default)]
36    pub html_url: String,
37    #[serde(default)]
38    pub git_url: String,
39    #[serde(default)]
40    pub download_url: String,
41    #[serde(rename = "type")]
42    pub file_type: String, // "file", "dir"
43}