foundry_config/
soldeer.rs
1use std::collections::BTreeMap;
4
5use serde::{Deserialize, Serialize};
6
7#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
9pub struct MapDependency {
10 pub version: String,
12
13 #[serde(default, skip_serializing_if = "Option::is_none")]
15 pub url: Option<String>,
16
17 #[serde(default, skip_serializing_if = "Option::is_none")]
19 pub rev: Option<String>,
20}
21
22#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
24pub struct SoldeerDependencyConfig(BTreeMap<String, SoldeerDependencyValue>);
25
26impl AsRef<Self> for SoldeerDependencyConfig {
27 fn as_ref(&self) -> &Self {
28 self
29 }
30}
31
32#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
37#[serde(untagged)]
38pub enum SoldeerDependencyValue {
39 Map(MapDependency),
40 Str(String),
41}
42
43#[derive(Serialize, Deserialize, Debug, Clone, Copy, PartialEq, Default)]
45#[serde(rename_all = "lowercase")]
46pub enum RemappingsLocation {
47 #[default]
48 Txt,
49 Config,
50}
51
52fn default_true() -> bool {
53 true
54}
55
56#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
58pub struct SoldeerConfig {
59 #[serde(default = "default_true")]
60 pub remappings_generate: bool,
61
62 #[serde(default)]
63 pub remappings_regenerate: bool,
64
65 #[serde(default = "default_true")]
66 pub remappings_version: bool,
67
68 #[serde(default)]
69 pub remappings_prefix: String,
70
71 #[serde(default)]
72 pub remappings_location: RemappingsLocation,
73
74 #[serde(default)]
75 pub recursive_deps: bool,
76}
77
78impl AsRef<Self> for SoldeerConfig {
79 fn as_ref(&self) -> &Self {
80 self
81 }
82}
83impl Default for SoldeerConfig {
84 fn default() -> Self {
85 Self {
86 remappings_generate: true,
87 remappings_regenerate: false,
88 remappings_version: true,
89 remappings_prefix: String::new(),
90 remappings_location: Default::default(),
91 recursive_deps: false,
92 }
93 }
94}