{%- if doc %}
{{ doc }}{%- endif %}
public func {{ ep_camel }}({{ param_sig }}){{ throws_kw }} -> {{ return_type }} {
guard let inner = inner else { throw ServiceError.invalidHandle }
// swift-bridge emits `fn {{ ep_camel }}(client: &mut App) -> String;` as a free
// module function — the wrapper class itself does not gain `inner.{{ ep_camel }}()`.
let result = RustBridge.{{ ep_camel }}(inner{% for ep_param in params %}, {{ ep_param.name }}{% endfor %}).toString()
{% if has_error %}
// The Rust wrapper flattens `Result<T, E>` into a String envelope:
// empty string means success, non-empty carries the formatted error.
// swift-bridge 0.1.59 does not bridge native Swift `Result`s.
if !result.isEmpty {
throw ServiceError.runtime(result)
}
{% elif has_return_value %}
return result
{% endif %}
}