pub unsafe trait PhpClosure {
    // Required method
    fn invoke<'a>(&'a mut self, parser: ArgParser<'a, '_>, ret: &mut Zval);
}
Available on crate feature closure only.
Expand description

Implemented on types which can be used as PHP closures.

Types must implement the invoke function which will be called when the closure is called from PHP. Arguments must be parsed from the ExecuteData and the return value is returned through the Zval.

This trait is automatically implemented on functions with up to 8 parameters.

Required Methods§

source

fn invoke<'a>(&'a mut self, parser: ArgParser<'a, '_>, ret: &mut Zval)

Invokes the closure.

Implementations on Foreign Types§

source§

impl<A, B, C, D, E, F, G, H, Ret> PhpClosure for Box<dyn Fn(A, B, C, D, E, F, G, H) -> Ret>
where for<'a> A: FromZval<'a>, for<'a> B: FromZval<'a>, for<'a> C: FromZval<'a>, for<'a> D: FromZval<'a>, for<'a> E: FromZval<'a>, for<'a> F: FromZval<'a>, for<'a> G: FromZval<'a>, for<'a> H: FromZval<'a>, Ret: IntoZval,

source§

fn invoke(&mut self, parser: ArgParser<'_, '_>, ret: &mut Zval)

source§

impl<A, B, C, D, E, F, G, H, Ret> PhpClosure for Box<dyn FnMut(A, B, C, D, E, F, G, H) -> Ret>
where for<'a> A: FromZval<'a>, for<'a> B: FromZval<'a>, for<'a> C: FromZval<'a>, for<'a> D: FromZval<'a>, for<'a> E: FromZval<'a>, for<'a> F: FromZval<'a>, for<'a> G: FromZval<'a>, for<'a> H: FromZval<'a>, Ret: IntoZval,

source§

fn invoke(&mut self, parser: ArgParser<'_, '_>, ret: &mut Zval)

source§

impl<A, B, C, D, E, F, G, Ret> PhpClosure for Box<dyn Fn(A, B, C, D, E, F, G) -> Ret>
where for<'a> A: FromZval<'a>, for<'a> B: FromZval<'a>, for<'a> C: FromZval<'a>, for<'a> D: FromZval<'a>, for<'a> E: FromZval<'a>, for<'a> F: FromZval<'a>, for<'a> G: FromZval<'a>, Ret: IntoZval,

source§

fn invoke(&mut self, parser: ArgParser<'_, '_>, ret: &mut Zval)

source§

impl<A, B, C, D, E, F, G, Ret> PhpClosure for Box<dyn FnMut(A, B, C, D, E, F, G) -> Ret>
where for<'a> A: FromZval<'a>, for<'a> B: FromZval<'a>, for<'a> C: FromZval<'a>, for<'a> D: FromZval<'a>, for<'a> E: FromZval<'a>, for<'a> F: FromZval<'a>, for<'a> G: FromZval<'a>, Ret: IntoZval,

source§

fn invoke(&mut self, parser: ArgParser<'_, '_>, ret: &mut Zval)

source§

impl<A, B, C, D, E, F, Ret> PhpClosure for Box<dyn Fn(A, B, C, D, E, F) -> Ret>
where for<'a> A: FromZval<'a>, for<'a> B: FromZval<'a>, for<'a> C: FromZval<'a>, for<'a> D: FromZval<'a>, for<'a> E: FromZval<'a>, for<'a> F: FromZval<'a>, Ret: IntoZval,

source§

fn invoke(&mut self, parser: ArgParser<'_, '_>, ret: &mut Zval)

source§

impl<A, B, C, D, E, F, Ret> PhpClosure for Box<dyn FnMut(A, B, C, D, E, F) -> Ret>
where for<'a> A: FromZval<'a>, for<'a> B: FromZval<'a>, for<'a> C: FromZval<'a>, for<'a> D: FromZval<'a>, for<'a> E: FromZval<'a>, for<'a> F: FromZval<'a>, Ret: IntoZval,

source§

fn invoke(&mut self, parser: ArgParser<'_, '_>, ret: &mut Zval)

source§

impl<A, B, C, D, E, Ret> PhpClosure for Box<dyn Fn(A, B, C, D, E) -> Ret>
where for<'a> A: FromZval<'a>, for<'a> B: FromZval<'a>, for<'a> C: FromZval<'a>, for<'a> D: FromZval<'a>, for<'a> E: FromZval<'a>, Ret: IntoZval,

source§

fn invoke(&mut self, parser: ArgParser<'_, '_>, ret: &mut Zval)

source§

impl<A, B, C, D, E, Ret> PhpClosure for Box<dyn FnMut(A, B, C, D, E) -> Ret>
where for<'a> A: FromZval<'a>, for<'a> B: FromZval<'a>, for<'a> C: FromZval<'a>, for<'a> D: FromZval<'a>, for<'a> E: FromZval<'a>, Ret: IntoZval,

source§

fn invoke(&mut self, parser: ArgParser<'_, '_>, ret: &mut Zval)

source§

impl<A, B, C, D, Ret> PhpClosure for Box<dyn Fn(A, B, C, D) -> Ret>
where for<'a> A: FromZval<'a>, for<'a> B: FromZval<'a>, for<'a> C: FromZval<'a>, for<'a> D: FromZval<'a>, Ret: IntoZval,

source§

fn invoke(&mut self, parser: ArgParser<'_, '_>, ret: &mut Zval)

source§

impl<A, B, C, D, Ret> PhpClosure for Box<dyn FnMut(A, B, C, D) -> Ret>
where for<'a> A: FromZval<'a>, for<'a> B: FromZval<'a>, for<'a> C: FromZval<'a>, for<'a> D: FromZval<'a>, Ret: IntoZval,

source§

fn invoke(&mut self, parser: ArgParser<'_, '_>, ret: &mut Zval)

source§

impl<A, B, C, Ret> PhpClosure for Box<dyn Fn(A, B, C) -> Ret>
where for<'a> A: FromZval<'a>, for<'a> B: FromZval<'a>, for<'a> C: FromZval<'a>, Ret: IntoZval,

source§

fn invoke(&mut self, parser: ArgParser<'_, '_>, ret: &mut Zval)

source§

impl<A, B, C, Ret> PhpClosure for Box<dyn FnMut(A, B, C) -> Ret>
where for<'a> A: FromZval<'a>, for<'a> B: FromZval<'a>, for<'a> C: FromZval<'a>, Ret: IntoZval,

source§

fn invoke(&mut self, parser: ArgParser<'_, '_>, ret: &mut Zval)

source§

impl<A, B, Ret> PhpClosure for Box<dyn Fn(A, B) -> Ret>
where for<'a> A: FromZval<'a>, for<'a> B: FromZval<'a>, Ret: IntoZval,

source§

fn invoke(&mut self, parser: ArgParser<'_, '_>, ret: &mut Zval)

source§

impl<A, B, Ret> PhpClosure for Box<dyn FnMut(A, B) -> Ret>
where for<'a> A: FromZval<'a>, for<'a> B: FromZval<'a>, Ret: IntoZval,

source§

fn invoke(&mut self, parser: ArgParser<'_, '_>, ret: &mut Zval)

source§

impl<A, Ret> PhpClosure for Box<dyn Fn(A) -> Ret>
where for<'a> A: FromZval<'a>, Ret: IntoZval,

source§

fn invoke(&mut self, parser: ArgParser<'_, '_>, ret: &mut Zval)

source§

impl<A, Ret> PhpClosure for Box<dyn FnMut(A) -> Ret>
where for<'a> A: FromZval<'a>, Ret: IntoZval,

source§

fn invoke(&mut self, parser: ArgParser<'_, '_>, ret: &mut Zval)

source§

impl<R> PhpClosure for Box<dyn Fn() -> R>
where R: IntoZval,

source§

fn invoke(&mut self, _: ArgParser<'_, '_>, ret: &mut Zval)

source§

impl<R> PhpClosure for Box<dyn FnMut() -> R>
where R: IntoZval,

source§

fn invoke(&mut self, _: ArgParser<'_, '_>, ret: &mut Zval)

Implementors§