updatehub_package_schema/
ubifs.rs1use crate::definitions::TargetType;
6use serde::Deserialize;
7
8#[derive(Clone, Deserialize, PartialEq, Eq, Debug)]
9#[serde(rename_all = "kebab-case")]
10pub struct Ubifs {
11 pub filename: String,
12 pub size: u64,
13 pub sha256sum: String,
14 #[serde(flatten)]
15 pub target: TargetType,
16
17 #[serde(default)]
18 pub compressed: bool,
19 #[serde(default)]
20 pub required_uncompressed_size: u64,
21}
22
23#[test]
24fn deserialize() {
25 use pretty_assertions::assert_eq;
26 use serde_json::json;
27
28 assert_eq!(
29 super::Object::Ubifs(Box::new(Ubifs {
30 filename: "ubifs".to_string(),
31 size: 1024,
32 sha256sum: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
33 .to_string(),
34 target: TargetType::UBIVolume("home".to_string()),
35
36 compressed: true,
37 required_uncompressed_size: 2048,
38 })),
39 serde_json::from_value::<super::Object>(json!({
40 "mode": "ubifs",
41 "filename": "ubifs",
42 "sha256sum": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
43 "size": 1024,
44 "target-type": "ubivolume",
45 "target": "home",
46 "compressed": true,
47 "required-uncompressed-size": 2048
48 }))
49 .unwrap()
50 );
51}