hugging_face_client/
repo.rs

1use 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}