fuel_tx/receipt/
script_result.rs

1use fuel_types::Word;
2
3#[derive(
4    Debug,
5    Copy,
6    Clone,
7    PartialEq,
8    Eq,
9    Hash,
10    serde::Serialize,
11    serde::Deserialize,
12    fuel_types::canonical::Deserialize,
13    fuel_types::canonical::Serialize,
14)]
15#[repr(u64)]
16pub enum ScriptExecutionResult {
17    Success,
18    Revert,
19    Panic,
20    // Generic failure case since any u64 is valid here
21    GenericFailure(u64),
22}
23
24impl From<ScriptExecutionResult> for Word {
25    fn from(result: ScriptExecutionResult) -> Self {
26        match result {
27            ScriptExecutionResult::Success => 0x00,
28            ScriptExecutionResult::Revert => 0x01,
29            ScriptExecutionResult::Panic => 0x02,
30            ScriptExecutionResult::GenericFailure(value) => value,
31        }
32    }
33}
34
35impl From<Word> for ScriptExecutionResult {
36    fn from(value: u64) -> Self {
37        match value {
38            0x00 => Self::Success,
39            0x01 => Self::Revert,
40            0x02 => Self::Panic,
41            value => Self::GenericFailure(value),
42        }
43    }
44}