@@ -5,22 +5,25 @@ use bitflags::bitflags;
55#[ cfg( not( php82) ) ]
66use crate :: ffi:: ZEND_ACC_REUSE_GET_ITERATOR ;
77use crate :: ffi:: {
8- CONST_CS , CONST_DEPRECATED , CONST_NO_FILE_CACHE , CONST_PERSISTENT , IS_ARRAY , IS_CALLABLE ,
9- IS_CONSTANT_AST , IS_DOUBLE , IS_FALSE , IS_LONG , IS_MIXED , IS_NULL , IS_OBJECT , IS_PTR ,
10- IS_REFERENCE , IS_RESOURCE , IS_STRING , IS_TRUE , IS_TYPE_COLLECTABLE , IS_TYPE_REFCOUNTED ,
11- IS_UNDEF , IS_VOID , PHP_INI_ALL , PHP_INI_PERDIR , PHP_INI_SYSTEM , PHP_INI_USER ,
12- ZEND_ACC_ABSTRACT , ZEND_ACC_ANON_CLASS , ZEND_ACC_CALL_VIA_TRAMPOLINE , ZEND_ACC_CHANGED ,
13- ZEND_ACC_CLOSURE , ZEND_ACC_CONSTANTS_UPDATED , ZEND_ACC_CTOR , ZEND_ACC_DEPRECATED ,
14- ZEND_ACC_DONE_PASS_TWO , ZEND_ACC_EARLY_BINDING , ZEND_ACC_FAKE_CLOSURE , ZEND_ACC_FINAL ,
15- ZEND_ACC_GENERATOR , ZEND_ACC_HAS_FINALLY_BLOCK , ZEND_ACC_HAS_RETURN_TYPE ,
8+ CONST_CS , CONST_DEPRECATED , CONST_NO_FILE_CACHE , CONST_PERSISTENT , E_COMPILE_ERROR ,
9+ E_COMPILE_WARNING , E_CORE_ERROR , E_CORE_WARNING , E_DEPRECATED , E_ERROR , E_NOTICE , E_PARSE ,
10+ E_RECOVERABLE_ERROR , E_STRICT , E_USER_DEPRECATED , E_USER_ERROR , E_USER_NOTICE , E_USER_WARNING ,
11+ E_WARNING , IS_ARRAY , IS_CALLABLE , IS_CONSTANT_AST , IS_DOUBLE , IS_FALSE , IS_LONG , IS_MIXED ,
12+ IS_NULL , IS_OBJECT , IS_PTR , IS_REFERENCE , IS_RESOURCE , IS_STRING , IS_TRUE , IS_TYPE_COLLECTABLE ,
13+ IS_TYPE_REFCOUNTED , IS_UNDEF , IS_VOID , PHP_INI_ALL , PHP_INI_PERDIR , PHP_INI_SYSTEM ,
14+ PHP_INI_USER , ZEND_ACC_ABSTRACT , ZEND_ACC_ANON_CLASS , ZEND_ACC_CALL_VIA_TRAMPOLINE ,
15+ ZEND_ACC_CHANGED , ZEND_ACC_CLOSURE , ZEND_ACC_CONSTANTS_UPDATED , ZEND_ACC_CTOR ,
16+ ZEND_ACC_DEPRECATED , ZEND_ACC_DONE_PASS_TWO , ZEND_ACC_EARLY_BINDING , ZEND_ACC_FAKE_CLOSURE ,
17+ ZEND_ACC_FINAL , ZEND_ACC_GENERATOR , ZEND_ACC_HAS_FINALLY_BLOCK , ZEND_ACC_HAS_RETURN_TYPE ,
1618 ZEND_ACC_HAS_TYPE_HINTS , ZEND_ACC_HEAP_RT_CACHE , ZEND_ACC_IMMUTABLE ,
1719 ZEND_ACC_IMPLICIT_ABSTRACT_CLASS , ZEND_ACC_INTERFACE , ZEND_ACC_LINKED , ZEND_ACC_NEARLY_LINKED ,
1820 ZEND_ACC_NEVER_CACHE , ZEND_ACC_NO_DYNAMIC_PROPERTIES , ZEND_ACC_PRELOADED , ZEND_ACC_PRIVATE ,
1921 ZEND_ACC_PROMOTED , ZEND_ACC_PROTECTED , ZEND_ACC_PUBLIC , ZEND_ACC_RESOLVED_INTERFACES ,
2022 ZEND_ACC_RESOLVED_PARENT , ZEND_ACC_RETURN_REFERENCE , ZEND_ACC_STATIC , ZEND_ACC_STRICT_TYPES ,
2123 ZEND_ACC_TOP_LEVEL , ZEND_ACC_TRAIT , ZEND_ACC_TRAIT_CLONE , ZEND_ACC_UNRESOLVED_VARIANCE ,
22- ZEND_ACC_USES_THIS , ZEND_ACC_USE_GUARDS , ZEND_ACC_VARIADIC , ZEND_HAS_STATIC_IN_METHODS ,
23- Z_TYPE_FLAGS_SHIFT , _IS_BOOL,
24+ ZEND_ACC_USES_THIS , ZEND_ACC_USE_GUARDS , ZEND_ACC_VARIADIC , ZEND_EVAL_CODE ,
25+ ZEND_HAS_STATIC_IN_METHODS , ZEND_INTERNAL_FUNCTION , ZEND_USER_FUNCTION , Z_TYPE_FLAGS_SHIFT ,
26+ _IS_BOOL,
2427} ;
2528
2629use std:: { convert:: TryFrom , fmt:: Display } ;
@@ -182,6 +185,46 @@ bitflags! {
182185 }
183186}
184187
188+ bitflags ! {
189+ /// Represents error types when used via php_error_docref for example.
190+ pub struct ErrorType : u32 {
191+ const Error = E_ERROR ;
192+ const Warning = E_WARNING ;
193+ const Parse = E_PARSE ;
194+ const Notice = E_NOTICE ;
195+ const CoreError = E_CORE_ERROR ;
196+ const CoreWarning = E_CORE_WARNING ;
197+ const CompileError = E_COMPILE_ERROR ;
198+ const CompileWarning = E_COMPILE_WARNING ;
199+ const UserError = E_USER_ERROR ;
200+ const UserWarning = E_USER_WARNING ;
201+ const UserNotice = E_USER_NOTICE ;
202+ const Strict = E_STRICT ;
203+ const RecoverableError = E_RECOVERABLE_ERROR ;
204+ const Deprecated = E_DEPRECATED ;
205+ const UserDeprecated = E_USER_DEPRECATED ;
206+ }
207+ }
208+
209+ #[ derive( PartialEq , Eq , Hash , Debug , Clone , Copy ) ]
210+ pub enum FunctionType {
211+ Internal ,
212+ User ,
213+ Eval ,
214+ }
215+
216+ impl From < u8 > for FunctionType {
217+ #[ allow( clippy:: bad_bit_mask) ]
218+ fn from ( value : u8 ) -> Self {
219+ match value as _ {
220+ ZEND_INTERNAL_FUNCTION => Self :: Internal ,
221+ ZEND_USER_FUNCTION => Self :: User ,
222+ ZEND_EVAL_CODE => Self :: Eval ,
223+ _ => panic ! ( "Unknown function type: {}" , value) ,
224+ }
225+ }
226+ }
227+
185228/// Valid data types for PHP.
186229#[ repr( C , u8 ) ]
187230#[ derive( Debug , Clone , Copy , PartialEq , Eq , PartialOrd , Ord ) ]
0 commit comments