@@ -20,8 +20,9 @@ use crate::ffi::{
2020 ZEND_ACC_PROMOTED , ZEND_ACC_PROTECTED , ZEND_ACC_PUBLIC , ZEND_ACC_RESOLVED_INTERFACES ,
2121 ZEND_ACC_RESOLVED_PARENT , ZEND_ACC_RETURN_REFERENCE , ZEND_ACC_STATIC , ZEND_ACC_STRICT_TYPES ,
2222 ZEND_ACC_TOP_LEVEL , ZEND_ACC_TRAIT , ZEND_ACC_TRAIT_CLONE , ZEND_ACC_UNRESOLVED_VARIANCE ,
23- ZEND_ACC_USES_THIS , ZEND_ACC_USE_GUARDS , ZEND_ACC_VARIADIC , ZEND_HAS_STATIC_IN_METHODS ,
24- Z_TYPE_FLAGS_SHIFT , _IS_BOOL,
23+ ZEND_ACC_USES_THIS , ZEND_ACC_USE_GUARDS , ZEND_ACC_VARIADIC , ZEND_EVAL_CODE ,
24+ ZEND_HAS_STATIC_IN_METHODS , ZEND_INTERNAL_FUNCTION , ZEND_USER_FUNCTION , Z_TYPE_FLAGS_SHIFT ,
25+ _IS_BOOL,
2526} ;
2627
2728use std:: { convert:: TryFrom , fmt:: Display } ;
@@ -193,6 +194,24 @@ bitflags! {
193194 const UserDeprecated = E_USER_DEPRECATED ;
194195 }
195196}
197+ #[ derive( PartialEq , Eq , Hash , Debug , Clone , Copy ) ]
198+ pub enum FunctionType {
199+ Internal ,
200+ User ,
201+ Eval ,
202+ }
203+
204+ impl From < u8 > for FunctionType {
205+ #[ allow( clippy:: bad_bit_mask) ]
206+ fn from ( value : u8 ) -> Self {
207+ match value as _ {
208+ ZEND_INTERNAL_FUNCTION => Self :: Internal ,
209+ ZEND_USER_FUNCTION => Self :: User ,
210+ ZEND_EVAL_CODE => Self :: Eval ,
211+ _ => panic ! ( "Unknown function type: {}" , value) ,
212+ }
213+ }
214+ }
196215
197216/// Valid data types for PHP.
198217#[ repr( C , u8 ) ]
0 commit comments