zksync_error/
kind.rs

1//
2// AUTOGENERATED BASED ON A SET OF JSON FILES, DO NOT EDIT MANUALLY
3//
4use crate::error::domains::AnvilZksyncCode;
5use crate::error::domains::CompilerCode;
6use crate::error::domains::CoreCode;
7use crate::error::domains::FoundryCode;
8use crate::error::domains::HardhatCode;
9use strum_macros::EnumDiscriminants;
10use strum_macros::FromRepr;
11#[derive(Clone, Debug, EnumDiscriminants, Eq, PartialEq)]
12#[cfg_attr(feature = "use_serde", derive(serde::Serialize, serde::Deserialize))]
13#[strum_discriminants(name(DomainCode))]
14#[strum_discriminants(derive(FromRepr))]
15#[strum_discriminants(vis(pub))]
16#[repr(u32)]
17pub enum Kind {
18    AnvilZksync(AnvilZksyncCode) = 5u32,
19    Compiler(CompilerCode) = 2u32,
20    Core(CoreCode) = 1u32,
21    Foundry(FoundryCode) = 4u32,
22    Hardhat(HardhatCode) = 3u32,
23}
24impl Kind {
25    pub fn domain_code(&self) -> u32 {
26        let domain: DomainCode = self.clone().into();
27        domain as u32
28    }
29    pub fn component_code(&self) -> u32 {
30        match self {
31            Kind::AnvilZksync(component) => *component as u32,
32            Kind::Compiler(component) => *component as u32,
33            Kind::Core(component) => *component as u32,
34            Kind::Foundry(component) => *component as u32,
35            Kind::Hardhat(component) => *component as u32,
36        }
37    }
38}