pub mod acore_name;
pub mod codec;
pub mod core;
pub mod dbg;
pub mod dts;
pub mod endpoints;
pub mod hmi;
pub mod ipc;
pub mod mcore_name;
pub mod memory;
pub mod party;
pub mod peripheral;
pub mod profile;
pub mod rcore_name;
pub mod rvcore_name;
pub mod ta;
pub mod tee;
pub mod xcore_name;
pub use acore_name::AcoreName;
pub use codec::Codec;
pub use core::{Core, VisibleCore};
pub use dbg::{Dbg, DbgCore, DbgMode};
pub use dts::{Dts, DtsMode};
pub use endpoints::Endpoints;
pub use hmi::{Hmi, HmiBackend, HmiEngine, HmiLogical};
pub use ipc::{Ipc, IpcChannel, IpcChannelConfig, IpcEndpoint, IpcPattern};
pub use mcore_name::McoreName;
pub use memory::MemoryRegion;
pub use party::Party;
pub use peripheral::Peripheral;
pub use profile::Profile;
pub use rcore_name::RcoreName;
pub use rvcore_name::{RvCoreName, RvExtensions, RvXlen};
pub use ta::Ta;
pub use tee::{TEE_UUID_ENV, Tee};
pub use xcore_name::XcoreName;
use std::collections::HashMap;
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
pub struct Config {
pub profile: Profile,
#[serde(default)]
pub endpoints: Endpoints,
#[serde(default)]
pub dbg: Dbg,
#[serde(default)]
pub dts: Dts,
#[serde(default)]
pub ipc: Ipc,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub tee: Option<Tee>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub hmi: Option<Hmi>,
#[serde(default)]
pub peripheral: HashMap<String, Peripheral>,
}