-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathphp_value_cast.v
More file actions
121 lines (95 loc) · 2.54 KB
/
Copy pathphp_value_cast.v
File metadata and controls
121 lines (95 loc) · 2.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
module vphp
pub fn (v PhpValue) as_null() ?PhpNull {
return PhpNull.from_zval(v.to_zval())
}
pub fn (v PhpValue) as_bool() ?PhpBool {
return PhpBool.from_zval(v.to_zval())
}
pub fn (v PhpValue) as_int() ?PhpInt {
return PhpInt.from_zval(v.to_zval())
}
pub fn (v PhpValue) as_double() ?PhpDouble {
return PhpDouble.from_zval(v.to_zval())
}
pub fn (v PhpValue) as_string() ?PhpString {
return PhpString.from_zval(v.to_zval())
}
pub fn (v PhpValue) as_scalar() ?PhpScalar {
return PhpScalar.from_zval(v.to_zval())
}
pub fn (v PhpValue) as_array() ?PhpArray {
if !v.is_array() {
return none
}
return PhpArray{
value: v.value.clone()
}
}
pub fn (v PhpValue) as_object() ?PhpObject {
if !v.is_object() {
return none
}
return PhpObject{
value: v.value.clone()
}
}
pub fn (v PhpValue) to_v_object[T]() ?&T {
obj := v.as_object() or { return none }
return obj.to_v_object[T]()
}
pub fn (v PhpValue) as_callable() ?PhpCallable {
if !v.is_callable() {
return none
}
return PhpCallable{
callable: v.value.clone()
}
}
pub fn (v PhpValue) as_resource() ?PhpResource {
return PhpResource.from_zval(v.to_zval())
}
pub fn (v PhpValue) as_iterable() ?PhpIterable {
return PhpIterable.from_zval(v.to_zval())
}
pub fn (v PhpValue) as_iterator() ?PhpIterator {
return PhpIterator.from_zval(v.to_zval())
}
pub fn (v PhpValue) as_reference() ?PhpReference {
return PhpReference.from_zval(v.to_zval())
}
pub fn (v PhpValue) as_throwable() ?PhpThrowable {
return PhpThrowable.from_zval(v.to_zval())
}
pub fn (v PhpValue) as_enum_case() ?PhpEnumCase {
return PhpEnumCase.from_zval(v.to_zval())
}
pub fn (v PhpValue) require_null() !PhpNull {
return PhpNull.must_from_zval(v.to_zval())
}
pub fn (v PhpValue) require_bool() !PhpBool {
return PhpBool.must_from_zval(v.to_zval())
}
pub fn (v PhpValue) require_int() !PhpInt {
return PhpInt.must_from_zval(v.to_zval())
}
pub fn (v PhpValue) require_double() !PhpDouble {
return PhpDouble.must_from_zval(v.to_zval())
}
pub fn (v PhpValue) require_string() !PhpString {
return PhpString.must_from_zval(v.to_zval())
}
pub fn (v PhpValue) require_scalar() !PhpScalar {
return PhpScalar.must_from_zval(v.to_zval())
}
pub fn (v PhpValue) require_array() !PhpArray {
return PhpArray.must_from_zval(v.to_zval())
}
pub fn (v PhpValue) require_object() !PhpObject {
return PhpObject.must_from_zval(v.to_zval())
}
pub fn (v PhpValue) require_callable() !PhpCallable {
return PhpCallable.must_from_zval(v.to_zval())
}
pub fn (v PhpValue) require_iterator() !PhpIterator {
return PhpIterator.must_from_zval(v.to_zval())
}