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
33#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
35pub struct SoldeerDependencyConfig(pub BTreeMap<String, SoldeerDependencyValue>);
36
37impl AsRef<Self> for SoldeerDependencyConfig {
38 fn as_ref(&self) -> &Self {
39 self
40 }
41}
42
43#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
48#[serde(untagged)]
49pub enum SoldeerDependencyValue {
50 Map(MapDependency),
51 Str(String),
52}