Skip to main content

updatehub_package_schema/definitions/
skip.rs

1// Copyright (C) 2019 O.S. Systems Sofware LTDA
2//
3// SPDX-License-Identifier: Apache-2.0
4
5use serde::Deserialize;
6
7/// How many chunk-size blocks must be skipped in the source file
8#[derive(Clone, PartialEq, Eq, Debug, Default, Deserialize)]
9pub struct Skip(pub u64);
10
11#[cfg(test)]
12mod test {
13    use super::*;
14    use pretty_assertions::assert_eq;
15    use serde_json::json;
16
17    #[derive(Debug, PartialEq, Eq, Deserialize)]
18    struct Payload {
19        #[serde(default)]
20        skip: Skip,
21    }
22
23    #[test]
24    fn deserialize() {
25        assert_eq!(
26            serde_json::from_value::<Payload>(json!({ "skip": 10 })).ok(),
27            Some(Payload { skip: Skip(10) })
28        );
29    }
30
31    #[test]
32    fn default() {
33        assert_eq!(
34            serde_json::from_value::<Payload>(json!({})).ok(),
35            Some(Payload { skip: Skip(0) })
36        );
37    }
38}