multiversx_sc_meta_lib/contract/sc_config/
sc_config_proxy.rs

1use std::path::{Path, PathBuf};
2
3use serde::Deserialize;
4
5#[derive(Deserialize, Default, Debug, Clone, PartialEq, Eq, Hash)]
6#[serde(deny_unknown_fields)]
7pub struct ProxyConfigSerde {
8    #[serde(default)]
9    pub path: PathBuf,
10
11    #[serde(default)]
12    #[serde(rename = "override-import")]
13    pub override_import: Option<String>,
14
15    #[serde(default)]
16    #[serde(rename = "path-rename")]
17    pub path_rename: Option<Vec<PathRename>>,
18
19    #[serde(default)]
20    pub variant: Option<String>,
21
22    #[serde(rename = "add-unlabelled")]
23    pub add_unlabelled: Option<bool>,
24
25    #[serde(default)]
26    #[serde(rename = "add-labels")]
27    pub add_labels: Vec<String>,
28
29    #[serde(default)]
30    #[serde(rename = "add-endpoints")]
31    pub add_endpoints: Vec<String>,
32}
33
34impl ProxyConfigSerde {
35    pub fn new() -> Self {
36        Self {
37            path: Path::new("output").join("proxy.rs"),
38            override_import: None,
39            path_rename: None,
40            variant: None,
41            add_unlabelled: None,
42            add_labels: Vec::new(),
43            add_endpoints: Vec::new(),
44        }
45    }
46}
47
48#[derive(Deserialize, Default, Debug, Clone, PartialEq, Eq, Hash)]
49pub struct PathRename {
50    #[serde(default)]
51    pub from: String,
52
53    #[serde(default)]
54    pub to: String,
55}