foundry_config/
soldeer.rs1use serde::{Deserialize, Serialize};
3pub use soldeer_core::config::SoldeerConfig;
4use std::collections::BTreeMap;
5
6#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
8pub struct MapDependency {
9 pub version: String,
11
12 #[serde(default, skip_serializing_if = "Option::is_none")]
14 pub url: Option<String>,
15
16 #[serde(default, skip_serializing_if = "Option::is_none")]
18 pub git: Option<String>,
19
20 #[serde(default, skip_serializing_if = "Option::is_none")]
22 pub rev: Option<String>,
23
24 #[serde(default, skip_serializing_if = "Option::is_none")]
26 pub branch: Option<String>,
27
28 #[serde(default, skip_serializing_if = "Option::is_none")]
30 pub tag: Option<String>,
31
32 #[serde(default, skip_serializing_if = "Option::is_none")]
34 pub project_root: Option<String>,
35}
36
37#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
39pub struct SoldeerDependencyConfig(pub BTreeMap<String, SoldeerDependencyValue>);
40
41impl AsRef<Self> for SoldeerDependencyConfig {
42 fn as_ref(&self) -> &Self {
43 self
44 }
45}
46
47#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
52#[serde(untagged)]
53pub enum SoldeerDependencyValue {
54 Map(MapDependency),
55 Str(String),
56}