1#[allow(unused_imports, clippy::wildcard_imports)]
2use super::*;
3
4#[cfg_attr(feature = "alloc", derive(Default))]
35#[derive(Clone, Copy, Debug, Hash, PartialEq, Eq, PartialOrd, Ord)]
36#[cfg_attr(feature = "arbitrary", derive(Arbitrary))]
37#[cfg_attr(
38 all(feature = "serde", feature = "alloc"),
39 derive(serde::Serialize, serde::Deserialize),
40 serde(rename_all = "snake_case")
41)]
42#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
43#[repr(i32)]
44pub enum ConfigSettingId {
45 #[cfg_attr(feature = "alloc", default)]
46 ContractMaxSizeBytes = 0,
47 ContractComputeV0 = 1,
48 ContractLedgerCostV0 = 2,
49 ContractHistoricalDataV0 = 3,
50 ContractEventsV0 = 4,
51 ContractBandwidthV0 = 5,
52 ContractCostParamsCpuInstructions = 6,
53 ContractCostParamsMemoryBytes = 7,
54 ContractDataKeySizeBytes = 8,
55 ContractDataEntrySizeBytes = 9,
56 StateArchival = 10,
57 ContractExecutionLanes = 11,
58 LiveSorobanStateSizeWindow = 12,
59 EvictionIterator = 13,
60 ContractParallelComputeV0 = 14,
61 ContractLedgerCostExtV0 = 15,
62 ScpTiming = 16,
63 FrozenLedgerKeys = 17,
64 FrozenLedgerKeysDelta = 18,
65 FreezeBypassTxs = 19,
66 FreezeBypassTxsDelta = 20,
67}
68
69impl ConfigSettingId {
70 const _VARIANTS: &[ConfigSettingId] = &[
71 ConfigSettingId::ContractMaxSizeBytes,
72 ConfigSettingId::ContractComputeV0,
73 ConfigSettingId::ContractLedgerCostV0,
74 ConfigSettingId::ContractHistoricalDataV0,
75 ConfigSettingId::ContractEventsV0,
76 ConfigSettingId::ContractBandwidthV0,
77 ConfigSettingId::ContractCostParamsCpuInstructions,
78 ConfigSettingId::ContractCostParamsMemoryBytes,
79 ConfigSettingId::ContractDataKeySizeBytes,
80 ConfigSettingId::ContractDataEntrySizeBytes,
81 ConfigSettingId::StateArchival,
82 ConfigSettingId::ContractExecutionLanes,
83 ConfigSettingId::LiveSorobanStateSizeWindow,
84 ConfigSettingId::EvictionIterator,
85 ConfigSettingId::ContractParallelComputeV0,
86 ConfigSettingId::ContractLedgerCostExtV0,
87 ConfigSettingId::ScpTiming,
88 ConfigSettingId::FrozenLedgerKeys,
89 ConfigSettingId::FrozenLedgerKeysDelta,
90 ConfigSettingId::FreezeBypassTxs,
91 ConfigSettingId::FreezeBypassTxsDelta,
92 ];
93 pub const VARIANTS: [ConfigSettingId; Self::_VARIANTS.len()] = {
94 let mut arr = [Self::_VARIANTS[0]; Self::_VARIANTS.len()];
95 let mut i = 1;
96 while i < Self::_VARIANTS.len() {
97 arr[i] = Self::_VARIANTS[i];
98 i += 1;
99 }
100 arr
101 };
102 const _VARIANTS_STR: &[&str] = &[
103 "ContractMaxSizeBytes",
104 "ContractComputeV0",
105 "ContractLedgerCostV0",
106 "ContractHistoricalDataV0",
107 "ContractEventsV0",
108 "ContractBandwidthV0",
109 "ContractCostParamsCpuInstructions",
110 "ContractCostParamsMemoryBytes",
111 "ContractDataKeySizeBytes",
112 "ContractDataEntrySizeBytes",
113 "StateArchival",
114 "ContractExecutionLanes",
115 "LiveSorobanStateSizeWindow",
116 "EvictionIterator",
117 "ContractParallelComputeV0",
118 "ContractLedgerCostExtV0",
119 "ScpTiming",
120 "FrozenLedgerKeys",
121 "FrozenLedgerKeysDelta",
122 "FreezeBypassTxs",
123 "FreezeBypassTxsDelta",
124 ];
125 pub const VARIANTS_STR: [&'static str; Self::_VARIANTS_STR.len()] = {
126 let mut arr = [Self::_VARIANTS_STR[0]; Self::_VARIANTS_STR.len()];
127 let mut i = 1;
128 while i < Self::_VARIANTS_STR.len() {
129 arr[i] = Self::_VARIANTS_STR[i];
130 i += 1;
131 }
132 arr
133 };
134
135 #[must_use]
136 pub const fn name(&self) -> &'static str {
137 match self {
138 Self::ContractMaxSizeBytes => "ContractMaxSizeBytes",
139 Self::ContractComputeV0 => "ContractComputeV0",
140 Self::ContractLedgerCostV0 => "ContractLedgerCostV0",
141 Self::ContractHistoricalDataV0 => "ContractHistoricalDataV0",
142 Self::ContractEventsV0 => "ContractEventsV0",
143 Self::ContractBandwidthV0 => "ContractBandwidthV0",
144 Self::ContractCostParamsCpuInstructions => "ContractCostParamsCpuInstructions",
145 Self::ContractCostParamsMemoryBytes => "ContractCostParamsMemoryBytes",
146 Self::ContractDataKeySizeBytes => "ContractDataKeySizeBytes",
147 Self::ContractDataEntrySizeBytes => "ContractDataEntrySizeBytes",
148 Self::StateArchival => "StateArchival",
149 Self::ContractExecutionLanes => "ContractExecutionLanes",
150 Self::LiveSorobanStateSizeWindow => "LiveSorobanStateSizeWindow",
151 Self::EvictionIterator => "EvictionIterator",
152 Self::ContractParallelComputeV0 => "ContractParallelComputeV0",
153 Self::ContractLedgerCostExtV0 => "ContractLedgerCostExtV0",
154 Self::ScpTiming => "ScpTiming",
155 Self::FrozenLedgerKeys => "FrozenLedgerKeys",
156 Self::FrozenLedgerKeysDelta => "FrozenLedgerKeysDelta",
157 Self::FreezeBypassTxs => "FreezeBypassTxs",
158 Self::FreezeBypassTxsDelta => "FreezeBypassTxsDelta",
159 }
160 }
161
162 #[must_use]
163 pub const fn variants() -> [ConfigSettingId; Self::_VARIANTS.len()] {
164 Self::VARIANTS
165 }
166}
167
168impl Name for ConfigSettingId {
169 #[must_use]
170 fn name(&self) -> &'static str {
171 Self::name(self)
172 }
173}
174
175impl Variants<ConfigSettingId> for ConfigSettingId {
176 fn variants() -> slice::Iter<'static, ConfigSettingId> {
177 Self::VARIANTS.iter()
178 }
179}
180
181impl Enum for ConfigSettingId {}
182
183impl fmt::Display for ConfigSettingId {
184 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
185 f.write_str(self.name())
186 }
187}
188
189impl TryFrom<i32> for ConfigSettingId {
190 type Error = Error;
191
192 fn try_from(i: i32) -> Result<Self, Error> {
193 let e = match i {
194 0 => ConfigSettingId::ContractMaxSizeBytes,
195 1 => ConfigSettingId::ContractComputeV0,
196 2 => ConfigSettingId::ContractLedgerCostV0,
197 3 => ConfigSettingId::ContractHistoricalDataV0,
198 4 => ConfigSettingId::ContractEventsV0,
199 5 => ConfigSettingId::ContractBandwidthV0,
200 6 => ConfigSettingId::ContractCostParamsCpuInstructions,
201 7 => ConfigSettingId::ContractCostParamsMemoryBytes,
202 8 => ConfigSettingId::ContractDataKeySizeBytes,
203 9 => ConfigSettingId::ContractDataEntrySizeBytes,
204 10 => ConfigSettingId::StateArchival,
205 11 => ConfigSettingId::ContractExecutionLanes,
206 12 => ConfigSettingId::LiveSorobanStateSizeWindow,
207 13 => ConfigSettingId::EvictionIterator,
208 14 => ConfigSettingId::ContractParallelComputeV0,
209 15 => ConfigSettingId::ContractLedgerCostExtV0,
210 16 => ConfigSettingId::ScpTiming,
211 17 => ConfigSettingId::FrozenLedgerKeys,
212 18 => ConfigSettingId::FrozenLedgerKeysDelta,
213 19 => ConfigSettingId::FreezeBypassTxs,
214 20 => ConfigSettingId::FreezeBypassTxsDelta,
215 #[allow(unreachable_patterns)]
216 _ => return Err(Error::Invalid),
217 };
218 Ok(e)
219 }
220}
221
222impl From<ConfigSettingId> for i32 {
223 #[must_use]
224 fn from(e: ConfigSettingId) -> Self {
225 e as Self
226 }
227}
228
229impl ReadXdr for ConfigSettingId {
230 #[cfg(feature = "std")]
231 fn read_xdr<R: Read>(r: &mut Limited<R>) -> Result<Self, Error> {
232 r.with_limited_depth(|r| {
233 let e = i32::read_xdr(r)?;
234 let v: Self = e.try_into()?;
235 Ok(v)
236 })
237 }
238}
239
240impl WriteXdr for ConfigSettingId {
241 #[cfg(feature = "std")]
242 fn write_xdr<W: Write>(&self, w: &mut Limited<W>) -> Result<(), Error> {
243 w.with_limited_depth(|w| {
244 let i: i32 = (*self).into();
245 i.write_xdr(w)
246 })
247 }
248}