cairo_vm/vm/errors/
cairo_pie_errors.rs

1use thiserror_no_std::Error;
2
3use crate::types::builtin_name::BuiltinName;
4
5#[derive(Eq, Hash, PartialEq, Debug, Error)]
6pub enum CairoPieValidationError {
7    #[error("Invalid main() address.")]
8    InvalidMainAddress,
9    #[error("Program length does not match the program segment size.")]
10    ProgramLenVsSegmentSizeMismatch,
11    #[error("Builtin list mismatch in builtin_segments.")]
12    BuiltinListVsSegmentsMismatch,
13    #[error("Invalid segment size for ret_fp. Must be 0.")]
14    InvalidRetFpSegmentSize,
15    #[error("Invalid segment size for ret_pc. Must be 0.")]
16    InvalidRetPcSegmentSize,
17    #[error("Invalid segment index for program_segment.")]
18    InvalidProgramSegmentIndex,
19    #[error("Invalid segment index for execution_segment.")]
20    InvalidExecutionSegmentIndex,
21    #[error("Invalid segment index for {0}.")]
22    InvalidBuiltinSegmentIndex(BuiltinName),
23    #[error("Invalid segment index for ret_fp_segment.")]
24    InvalidRetFpSegmentIndex,
25    #[error("Invalid segment index for ret_pc_segment.")]
26    InvalidRetPcSegmentIndex,
27    #[error("Invalid segment indices for extra_segments.")]
28    InvalidExtraSegmentIndex,
29    #[error("Invalid address")]
30    InvalidAddress,
31    #[error("Cairo PIE diff: metadata mismatch")]
32    DiffMetadata,
33    #[error("Cairo PIE diff: memory mismatch")]
34    DiffMemory,
35    #[error("Cairo PIE diff: execution_resources mismatch")]
36    DiffExecutionResources,
37    #[error("Cairo PIE diff: additional_data mismatch")]
38    DiffAdditionalData,
39    #[error("Cairo PIE diff: additional_data[{0}] mismatch")]
40    DiffAdditionalDataForBuiltin(BuiltinName),
41}