updatehub_package_schema/
lib.rs

1// Copyright (C) 2019 O.S. Systems Sofware LTDA
2//
3// SPDX-License-Identifier: Apache-2.0
4
5mod copy;
6mod flash;
7mod imxkobs;
8mod mender;
9mod raw;
10mod raw_delta;
11mod tarball;
12mod test;
13mod ubifs;
14mod uboot_env;
15mod zephyr;
16
17mod update_package;
18
19/// Internal structures in the Objects for some type validation
20pub mod definitions;
21/// Objects representing each possible install mode
22pub mod objects {
23    pub use crate::{
24        copy::Copy, flash::Flash, imxkobs::Imxkobs, mender::Mender, raw::Raw, raw_delta::RawDelta,
25        tarball::Tarball, test::Test, ubifs::Ubifs, uboot_env::UbootEnv, zephyr::Zephyr,
26    };
27}
28pub use update_package::{SupportedHardware, UpdatePackage};
29
30use serde::Deserialize;
31
32/// Represents the install mode for the object data
33#[derive(Clone, Deserialize, PartialEq, Eq, Debug)]
34#[serde(tag = "mode")]
35#[serde(rename_all = "lowercase")]
36pub enum Object {
37    Copy(Box<objects::Copy>),
38    Flash(Box<objects::Flash>),
39    Imxkobs(Box<objects::Imxkobs>),
40    Mender(Box<objects::Mender>),
41    Raw(Box<objects::Raw>),
42    #[serde(rename = "raw-delta")]
43    RawDelta(Box<objects::RawDelta>),
44    Tarball(Box<objects::Tarball>),
45    Test(Box<objects::Test>),
46    Ubifs(Box<objects::Ubifs>),
47    #[serde(rename = "uboot-env")]
48    UbootEnv(Box<objects::UbootEnv>),
49    Zephyr(Box<objects::Zephyr>),
50}