use std::collections::{BTreeMap, HashMap}; use std::path::PathBuf; use serde::Deserialize; #[derive(Debug, Deserialize)] pub struct ParsedCrate { pub package: ParsedPackage, pub dependencies: BTreeMap, } #[derive(Debug, Deserialize)] pub struct ParsedPackage { pub name: String, pub version: String, #[serde(default = "default_publish")] pub publish: bool, #[serde(default)] pub metadata: Metadata, } fn default_publish() -> bool { true } #[derive(Debug, Deserialize, Default)] pub struct Metadata { #[serde(default)] pub embassy: MetadataEmbassy, } #[derive(Debug, Deserialize, Default)] pub struct MetadataEmbassy { #[serde(default)] pub skip: bool, #[serde(default)] pub build: Vec, } #[derive(Debug, Clone, Deserialize)] pub struct BuildConfig { #[serde(default)] pub features: Vec, pub target: Option, #[serde(rename = "artifact-dir")] pub artifact_dir: Option, } pub type CrateId = String; #[derive(Debug, Clone)] pub struct Crate { pub name: String, pub version: String, pub path: PathBuf, pub dependencies: Vec, pub configs: Vec, pub publish: bool, }