Skip to main content

stellar_xdr/generated/
config_setting_id.rs

1#[allow(unused_imports, clippy::wildcard_imports)]
2use super::*;
3
4/// ConfigSettingId is an XDR Enum defined as:
5///
6/// ```text
7/// enum ConfigSettingID
8/// {
9///     CONFIG_SETTING_CONTRACT_MAX_SIZE_BYTES = 0,
10///     CONFIG_SETTING_CONTRACT_COMPUTE_V0 = 1,
11///     CONFIG_SETTING_CONTRACT_LEDGER_COST_V0 = 2,
12///     CONFIG_SETTING_CONTRACT_HISTORICAL_DATA_V0 = 3,
13///     CONFIG_SETTING_CONTRACT_EVENTS_V0 = 4,
14///     CONFIG_SETTING_CONTRACT_BANDWIDTH_V0 = 5,
15///     CONFIG_SETTING_CONTRACT_COST_PARAMS_CPU_INSTRUCTIONS = 6,
16///     CONFIG_SETTING_CONTRACT_COST_PARAMS_MEMORY_BYTES = 7,
17///     CONFIG_SETTING_CONTRACT_DATA_KEY_SIZE_BYTES = 8,
18///     CONFIG_SETTING_CONTRACT_DATA_ENTRY_SIZE_BYTES = 9,
19///     CONFIG_SETTING_STATE_ARCHIVAL = 10,
20///     CONFIG_SETTING_CONTRACT_EXECUTION_LANES = 11,
21///     CONFIG_SETTING_LIVE_SOROBAN_STATE_SIZE_WINDOW = 12,
22///     CONFIG_SETTING_EVICTION_ITERATOR = 13,
23///     CONFIG_SETTING_CONTRACT_PARALLEL_COMPUTE_V0 = 14,
24///     CONFIG_SETTING_CONTRACT_LEDGER_COST_EXT_V0 = 15,
25///     CONFIG_SETTING_SCP_TIMING = 16,
26///     CONFIG_SETTING_FROZEN_LEDGER_KEYS = 17,
27///     CONFIG_SETTING_FROZEN_LEDGER_KEYS_DELTA = 18,
28///     CONFIG_SETTING_FREEZE_BYPASS_TXS = 19,
29///     CONFIG_SETTING_FREEZE_BYPASS_TXS_DELTA = 20
30/// };
31/// ```
32///
33// enum
34#[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}