updatehub_package_schema/
imxkobs.rs1use crate::definitions::InstallIfDifferent;
6use serde::Deserialize;
7use std::path::PathBuf;
8
9#[derive(Clone, Deserialize, PartialEq, Eq, Debug)]
10pub struct Imxkobs {
11 pub filename: String,
12 pub size: u64,
13 pub sha256sum: String,
14
15 pub install_if_different: Option<InstallIfDifferent>,
16 #[serde(rename = "1k_padding")]
17 #[serde(default)]
18 pub padding_1k: bool,
19 #[serde(default)]
20 pub search_exponent: usize,
21 #[serde(default)]
22 pub chip_0_device_path: Option<PathBuf>,
23 #[serde(default)]
24 pub chip_1_device_path: Option<PathBuf>,
25}
26
27#[test]
28fn deserialize() {
29 use pretty_assertions::assert_eq;
30 use serde_json::json;
31
32 assert_eq!(
33 super::Object::Imxkobs(Box::new(Imxkobs {
34 filename: "imxkobs-filename".to_string(),
35 size: 1024,
36 sha256sum: "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
37 .to_string(),
38
39 install_if_different: None,
40 padding_1k: true,
41 search_exponent: 2,
42 chip_0_device_path: Some(PathBuf::from("/dev/sda1")),
43 chip_1_device_path: Some(PathBuf::from("/dev/sda2")),
44 })),
45 serde_json::from_value::<super::Object>(json!({
46 "mode": "imxkobs",
47 "filename": "imxkobs-filename",
48 "sha256sum": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
49 "size": 1024,
50 "1k_padding": true,
51 "search_exponent": 2,
52 "chip_0_device_path": "/dev/sda1",
53 "chip_1_device_path": "/dev/sda2",
54 }))
55 .unwrap()
56 );
57}