hugging_face_client/
repo.rs1use serde::{Deserialize, Serialize};
2
3pub struct Repository {}
4
5#[derive(Debug, Copy, Clone, PartialEq, Eq, Serialize, Deserialize)]
6pub enum RepoType {
7 #[serde(rename = "dataset")]
8 Dataset,
9
10 #[serde(rename = "space")]
11 Space,
12
13 #[serde(rename = "model")]
14 Model,
15}
16
17impl Default for RepoType {
18 fn default() -> Self {
19 RepoType::Model
20 }
21}
22
23#[cfg(test)]
24mod test {
25 use std::assert_matches::assert_matches;
26
27 use crate::repo::RepoType;
28
29 #[test]
30 fn test_serde_repo_type() {
31 let repo_type = RepoType::Dataset;
32 let json = serde_json::to_string(&repo_type);
33 assert_matches!(json, Ok(v) if v == "\"dataset\"");
34
35 let json = "\"dataset\"";
36 let sdk = serde_json::from_str::<RepoType>(json);
37 assert_matches!(sdk, Ok(RepoType::Dataset));
38
39 let repo_type = RepoType::Space;
40 let json = serde_json::to_string(&repo_type);
41 assert_matches!(json, Ok(v) if v == "\"space\"");
42
43 let json = "\"space\"";
44 let sdk = serde_json::from_str::<RepoType>(json);
45 assert_matches!(sdk, Ok(RepoType::Space));
46
47 let repo_type = RepoType::Model;
48 let json = serde_json::to_string(&repo_type);
49 assert_matches!(json, Ok(v) if v == "\"model\"");
50
51 let json = "\"model\"";
52 let sdk = serde_json::from_str::<RepoType>(json);
53 assert_matches!(sdk, Ok(RepoType::Model));
54 }
55}