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(
12    Clone, Debug, EnumDiscriminants, Eq, PartialEq, serde :: Deserialize, serde :: Serialize,
13)]
14#[strum_discriminants(name(DomainCode))]
15#[strum_discriminants(derive(FromRepr))]
16#[strum_discriminants(vis(pub))]
17#[repr(u32)]
18pub enum Kind {
19    AnvilZksync(AnvilZksyncCode) = 5u32,
20    Compiler(CompilerCode) = 2u32,
21    Core(CoreCode) = 1u32,
22    Foundry(FoundryCode) = 4u32,
23    Hardhat(HardhatCode) = 3u32,
24}
25impl Kind {
26    pub fn domain_code(&self) -> u32 {
27        let domain: DomainCode = self.clone().into();
28        domain as u32
29    }
30    pub fn component_code(&self) -> u32 {
31        match self {
32            Kind::AnvilZksync(component) => *component as u32,
33            Kind::Compiler(component) => *component as u32,
34            Kind::Core(component) => *component as u32,
35            Kind::Foundry(component) => *component as u32,
36            Kind::Hardhat(component) => *component as u32,
37        }
38    }
39}