mirror of
https://github.com/danog/ext-php-rs.git
synced 2024-11-30 04:39:04 +01:00
Add function type_() method (#254)
This commit is contained in:
parent
4e8bec7995
commit
42ef04a8ae
@ -217,6 +217,9 @@ bind! {
|
||||
_ZEND_TYPE_NULLABLE_BIT,
|
||||
ts_rsrc_id,
|
||||
_ZEND_TYPE_NAME_BIT,
|
||||
ZEND_INTERNAL_FUNCTION,
|
||||
ZEND_USER_FUNCTION,
|
||||
ZEND_EVAL_CODE,
|
||||
zval_ptr_dtor,
|
||||
zend_refcounted_h,
|
||||
zend_is_true,
|
||||
|
@ -91,6 +91,9 @@ pub const ZEND_ACC_GENERATOR: u32 = 16777216;
|
||||
pub const ZEND_ACC_DONE_PASS_TWO: u32 = 33554432;
|
||||
pub const ZEND_ACC_HEAP_RT_CACHE: u32 = 67108864;
|
||||
pub const ZEND_ACC_STRICT_TYPES: u32 = 2147483648;
|
||||
pub const ZEND_INTERNAL_FUNCTION: u32 = 1;
|
||||
pub const ZEND_USER_FUNCTION: u32 = 2;
|
||||
pub const ZEND_EVAL_CODE: u32 = 4;
|
||||
pub const ZEND_ISEMPTY: u32 = 1;
|
||||
pub const _ZEND_SEND_MODE_SHIFT: u32 = 25;
|
||||
pub const _ZEND_IS_VARIADIC_BIT: u32 = 134217728;
|
||||
|
23
src/flags.rs
23
src/flags.rs
@ -20,8 +20,9 @@ use crate::ffi::{
|
||||
ZEND_ACC_PROMOTED, ZEND_ACC_PROTECTED, ZEND_ACC_PUBLIC, ZEND_ACC_RESOLVED_INTERFACES,
|
||||
ZEND_ACC_RESOLVED_PARENT, ZEND_ACC_RETURN_REFERENCE, ZEND_ACC_STATIC, ZEND_ACC_STRICT_TYPES,
|
||||
ZEND_ACC_TOP_LEVEL, ZEND_ACC_TRAIT, ZEND_ACC_TRAIT_CLONE, ZEND_ACC_UNRESOLVED_VARIANCE,
|
||||
ZEND_ACC_USES_THIS, ZEND_ACC_USE_GUARDS, ZEND_ACC_VARIADIC, ZEND_HAS_STATIC_IN_METHODS,
|
||||
Z_TYPE_FLAGS_SHIFT, _IS_BOOL,
|
||||
ZEND_ACC_USES_THIS, ZEND_ACC_USE_GUARDS, ZEND_ACC_VARIADIC, ZEND_EVAL_CODE,
|
||||
ZEND_HAS_STATIC_IN_METHODS, ZEND_INTERNAL_FUNCTION, ZEND_USER_FUNCTION, Z_TYPE_FLAGS_SHIFT,
|
||||
_IS_BOOL,
|
||||
};
|
||||
|
||||
use std::{convert::TryFrom, fmt::Display};
|
||||
@ -193,6 +194,24 @@ bitflags! {
|
||||
const UserDeprecated = E_USER_DEPRECATED;
|
||||
}
|
||||
}
|
||||
#[derive(PartialEq, Eq, Hash, Debug, Clone, Copy)]
|
||||
pub enum FunctionType {
|
||||
Internal,
|
||||
User,
|
||||
Eval,
|
||||
}
|
||||
|
||||
impl From<u8> for FunctionType {
|
||||
#[allow(clippy::bad_bit_mask)]
|
||||
fn from(value: u8) -> Self {
|
||||
match value as _ {
|
||||
ZEND_INTERNAL_FUNCTION => Self::Internal,
|
||||
ZEND_USER_FUNCTION => Self::User,
|
||||
ZEND_EVAL_CODE => Self::Eval,
|
||||
_ => panic!("Unknown function type: {}", value),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Valid data types for PHP.
|
||||
#[repr(C, u8)]
|
||||
|
Loading…
Reference in New Issue
Block a user