-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathphp_return_object.v
More file actions
30 lines (24 loc) · 916 Bytes
/
php_return_object.v
File metadata and controls
30 lines (24 loc) · 916 Bytes
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
module vphp
import vphp.object
pub fn (ret PhpReturn) resource(ptr voidptr, label string) {
ret.to_zval().make_resource(ptr, label)
}
pub fn (ret PhpReturn) object(v_ptr voidptr, ce ZendClassEntry) {
object.return_unbound(ret.raw_ptr(), v_ptr, ce.raw_ptr())
}
pub fn (ret PhpReturn) bound_object(v_ptr voidptr, ce ZendClassEntry, handlers voidptr, ownership OwnershipKind) {
match ownership {
.borrowed {
object.return_bound(ret.raw_ptr(), v_ptr, ce.raw_ptr(), handlers, .borrowed)
}
.owned_request, .owned_persistent {
object.return_bound(ret.raw_ptr(), v_ptr, ce.raw_ptr(), handlers, .owned)
}
}
}
pub fn (ret PhpReturn) owned_object(v_ptr voidptr, ce ZendClassEntry, handlers voidptr) {
ret.bound_object(v_ptr, ce, handlers, .owned_request)
}
pub fn (ret PhpReturn) borrowed_object(v_ptr voidptr, ce ZendClassEntry, handlers voidptr) {
ret.bound_object(v_ptr, ce, handlers, .borrowed)
}