cairo_vm/vm/errors/
cairo_pie_errors.rs1use 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}