revm_bytecode/opcode/
parse.rs1use super::OpCode;
7use crate::opcode::NAME_TO_OPCODE;
8use core::fmt;
9
10#[derive(Debug, PartialEq, Eq)]
12pub struct OpCodeError(());
13
14impl fmt::Display for OpCodeError {
15 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
16 f.write_str("invalid opcode")
17 }
18}
19
20impl core::error::Error for OpCodeError {}
21
22impl core::str::FromStr for OpCode {
23 type Err = OpCodeError;
24
25 #[inline]
26 fn from_str(s: &str) -> Result<Self, Self::Err> {
27 Self::parse(s).ok_or(OpCodeError(()))
28 }
29}
30
31impl OpCode {
32 #[inline]
36 pub fn parse(s: &str) -> Option<Self> {
37 NAME_TO_OPCODE.get(s).copied()
38 }
39}