alef-backend-php 0.15.21

PHP (ext-php-rs) backend for alef
Documentation
let inner_obj = self.inner;
let cached_name = self.cached_name.clone();
{% for param_name in string_params %}
let {{ param_name }} = {{ param_name }}.clone();
{% endfor %}

// SAFETY: PHP objects are single-threaded within a request.
// The block_on executes within the async runtime.
WORKER_RUNTIME.block_on(async {
    match unsafe { (*inner_obj).try_call_method("{{ method_name }}", {{ args_expr }}) } {
{% if is_result_type %}
        Ok(val) => {
            let json_str = val.string().unwrap_or_default();
            serde_json::from_str(&json_str).map_err(|e| {{ core_import }}::KreuzbergError::Other(format!("Deserialize error: {}", e)))
        }
{% else %}
        Ok(val) => val.string().unwrap_or_default().parse().unwrap_or_default(),
{% endif %}
        Err(e) => Err({{ core_import }}::KreuzbergError::Plugin {
            message: format!("Plugin '{}' method '{{ method_name }}' failed: {}", cached_name, e),
            plugin_name: cached_name.clone(),
        }),
    }
})