@@ -64,35 +64,37 @@ impl TryFrom<i32> for Mode {
6464
6565 #[ allow( clippy:: cognitive_complexity) ]
6666 fn try_from ( v : i32 ) -> Result < Self , Self :: Error > {
67- match v {
68- x if x == Self :: LITTLE_ENDIAN . 0 as i32 => Ok ( Self :: LITTLE_ENDIAN ) ,
69- x if x == Self :: BIG_ENDIAN . 0 as i32 => Ok ( Self :: BIG_ENDIAN ) ,
70- x if x == Self :: ARM . 0 as i32 => Ok ( Self :: ARM ) ,
71- x if x == Self :: THUMB . 0 as i32 => Ok ( Self :: THUMB ) ,
72- x if x == Self :: MCLASS . 0 as i32 => Ok ( Self :: MCLASS ) ,
73- x if x == Self :: V8 . 0 as i32 => Ok ( Self :: V8 ) ,
74- x if x == Self :: ARMBE8 . 0 as i32 => Ok ( Self :: ARMBE8 ) ,
75- x if x == Self :: ARM926 . 0 as i32 => Ok ( Self :: ARM926 ) ,
76- x if x == Self :: ARM946 . 0 as i32 => Ok ( Self :: ARM946 ) ,
77- x if x == Self :: ARM1176 . 0 as i32 => Ok ( Self :: ARM1176 ) ,
78- x if x == Self :: MICRO . 0 as i32 => Ok ( Self :: MICRO ) ,
79- x if x == Self :: MIPS3 . 0 as i32 => Ok ( Self :: MIPS3 ) ,
80- x if x == Self :: MIPS32R6 . 0 as i32 => Ok ( Self :: MIPS32R6 ) ,
81- x if x == Self :: MIPS32 . 0 as i32 => Ok ( Self :: MIPS32 ) ,
82- x if x == Self :: MIPS64 . 0 as i32 => Ok ( Self :: MIPS64 ) ,
83- x if x == Self :: MODE_16 . 0 as i32 => Ok ( Self :: MODE_16 ) ,
84- x if x == Self :: MODE_32 . 0 as i32 => Ok ( Self :: MODE_32 ) ,
85- x if x == Self :: MODE_64 . 0 as i32 => Ok ( Self :: MODE_64 ) ,
86- x if x == Self :: PPC32 . 0 as i32 => Ok ( Self :: PPC32 ) ,
87- x if x == Self :: PPC64 . 0 as i32 => Ok ( Self :: PPC64 ) ,
88- x if x == Self :: QPX . 0 as i32 => Ok ( Self :: QPX ) ,
89- x if x == Self :: SPARC32 . 0 as i32 => Ok ( Self :: SPARC32 ) ,
90- x if x == Self :: SPARC64 . 0 as i32 => Ok ( Self :: SPARC64 ) ,
91- x if x == Self :: V9 . 0 as i32 => Ok ( Self :: V9 ) ,
92- x if x == Self :: RISCV32 . 0 as i32 => Ok ( Self :: RISCV32 ) ,
93- x if x == Self :: RISCV64 . 0 as i32 => Ok ( Self :: RISCV64 ) ,
94- _ => Err ( uc_error:: MODE ) ,
67+ const VALID_MODES : i32 = ( Mode :: LITTLE_ENDIAN . 0
68+ | Mode :: BIG_ENDIAN . 0
69+ | Mode :: ARM . 0
70+ | Mode :: THUMB . 0
71+ | Mode :: MCLASS . 0
72+ | Mode :: V8 . 0
73+ | Mode :: ARMBE8 . 0
74+ | Mode :: ARM926 . 0
75+ | Mode :: ARM946 . 0
76+ | Mode :: ARM1176 . 0
77+ | Mode :: MICRO . 0
78+ | Mode :: MIPS3 . 0
79+ | Mode :: MIPS32R6 . 0
80+ | Mode :: MIPS32 . 0
81+ | Mode :: MIPS64 . 0
82+ | Mode :: MODE_16 . 0
83+ | Mode :: MODE_32 . 0
84+ | Mode :: MODE_64 . 0
85+ | Mode :: PPC32 . 0
86+ | Mode :: PPC64 . 0
87+ | Mode :: QPX . 0
88+ | Mode :: SPARC32 . 0
89+ | Mode :: SPARC64 . 0
90+ | Mode :: V9 . 0
91+ | Mode :: RISCV32 . 0
92+ | Mode :: RISCV64 . 0 ) as i32 ;
93+
94+ if ( v & !VALID_MODES ) != 0 {
95+ return Err ( uc_error:: MODE ) ;
9596 }
97+ Ok ( Self ( v as u32 ) )
9698 }
9799}
98100
0 commit comments