multiversx_sc_meta_lib/contract/sc_config/
sc_config_serde.rs1use serde::Deserialize;
2use std::collections::HashMap;
3
4use super::ProxyConfigSerde;
5
6#[derive(Deserialize, Debug)]
7#[serde(deny_unknown_fields)]
8pub struct ScConfigSerde {
9 #[serde(default)]
10 pub settings: MultiContractGeneralSettingsSerde,
11 #[serde(default)]
12 pub contracts: HashMap<String, ContractVariantSerde>,
13 #[serde(default)]
14 pub proxy: Vec<ProxyConfigSerde>,
15 #[serde(default)]
16 #[serde(rename = "labels-for-contracts")]
17 pub labels_for_contracts: HashMap<String, Vec<String>>,
18}
19
20#[derive(Deserialize, Debug)]
21#[serde(deny_unknown_fields)]
22pub struct ContractVariantSerde {
23 pub name: Option<String>,
24
25 #[serde(default)]
26 #[serde(rename = "add-unlabelled")]
27 pub add_unlabelled: Option<bool>,
28
29 #[serde(default)]
30 #[serde(rename = "add-labels")]
31 pub add_labels: Vec<String>,
32
33 #[serde(default)]
34 #[serde(rename = "add-endpoints")]
35 pub add_endpoints: Vec<String>,
36
37 #[serde(default)]
38 #[serde(rename = "external-view")]
39 pub external_view: Option<bool>,
40
41 #[serde(default)]
42 #[serde(rename = "panic-message")]
43 pub panic_message: Option<bool>,
44
45 #[serde(default)]
46 pub ei: Option<String>,
47
48 #[serde(default)]
49 pub allocator: Option<String>,
50
51 #[serde(default)]
52 #[serde(rename = "stack-size")]
53 pub stack_size: Option<String>,
54
55 #[serde(default)]
56 pub features: Vec<String>,
57
58 #[serde(default)]
59 #[serde(rename = "default-features")]
60 pub default_features: Option<bool>,
61
62 #[serde(default)]
63 pub kill_legacy_callback: bool,
64
65 #[serde(default)]
66 pub profile: Option<ContractVariantProfileSerde>,
67
68 #[serde(default)]
69 pub std: Option<bool>,
70
71 #[serde(rename = "rustc-version")]
72 pub rustc_version: Option<String>,
73
74 #[serde(rename = "rustc-target")]
75 pub rustc_target: Option<String>,
76
77 #[serde(rename = "opcode-version")]
78 pub opcode_version: Option<String>,
79
80 #[serde(rename = "wasm-opt-version")]
81 #[serde(default)]
82 pub wasm_opt_version: Option<String>,
83}
84
85#[derive(Deserialize, Default, Debug)]
86#[serde(deny_unknown_fields)]
87pub struct MultiContractGeneralSettingsSerde {
88 #[serde(default)]
89 pub main: Option<String>,
90}
91
92#[derive(Deserialize, Default, Debug, Clone, PartialEq, Eq)]
93#[serde(deny_unknown_fields)]
94pub struct ContractVariantProfileSerde {
95 #[serde(default)]
96 #[serde(rename = "codegen-units")]
97 pub codegen_units: Option<u8>,
98
99 #[serde(default)]
100 #[serde(rename = "opt-level")]
101 pub opt_level: Option<String>,
102
103 #[serde(default)]
104 pub lto: Option<bool>,
105
106 #[serde(default)]
107 pub debug: Option<bool>,
108
109 #[serde(default)]
110 pub panic: Option<String>,
111
112 #[serde(default)]
113 #[serde(rename = "overflow-checks")]
114 pub overflow_checks: Option<bool>,
115}