revm_primitives/
kzg.rs

1cfg_if::cfg_if! {
2    if #[cfg(feature = "c-kzg")] {
3        pub use c_kzg::KzgSettings;
4        /// KZG Settings that allow us to specify a custom trusted setup.
5        /// or use hardcoded default settings.
6        #[derive(Debug, Clone, Default, PartialEq, Eq )]
7        pub enum EnvKzgSettings {
8            /// Default mainnet trusted setup
9            #[default]
10            Default,
11            /// Custom trusted setup.
12            Custom(std::sync::Arc<c_kzg::KzgSettings>),
13        }
14
15        impl EnvKzgSettings {
16            /// Return set KZG settings.
17            ///
18            /// In will initialize the default settings if it is not already loaded.
19            pub fn get(&self) -> &c_kzg::KzgSettings {
20                match self {
21                    Self::Default => {
22                        c_kzg::ethereum_kzg_settings()
23                    }
24                    Self::Custom(settings) => settings,
25                }
26            }
27        }
28    } else if #[cfg(feature = "kzg-rs")] {
29        pub use kzg_rs::{KzgSettings,EnvKzgSettings};
30    }
31}