alef 0.114.0

Opinionated polyglot binding generator for Rust libraries
Documentation
{% set extra = "    " if has_throwing_case else "" %}
extension {{ name }} {
    init?(bridgeError error: RustBridge.AlefBridgeError) {
        let message = error.message().toString()
        let status = error.status()
        let retryAfterMs = error.retryAfterMs()
        _ = (message, status, retryAfterMs)
{% if has_throwing_case %}
        do {
{% endif %}
{{ extra }}        switch error.kind().toString() {
{% for case in cases %}
{% if case.expression %}
{{ extra }}        case "{{ case.name }}":
{{ extra }}            self = {{ case.expression }}
{% endif %}
{% endfor %}
{{ extra }}        default:
{{ extra }}            return nil
{{ extra }}        }
{% if has_throwing_case %}
        } catch {
            return nil
        }
{% endif %}
    }
{% if not has_kind_method %}

    public var kind: String {
        switch self {
{% for case in cases %}
        case .{{ case.case_name }}: return "{{ case.name }}"
{% endfor %}
{% if not has_validation_variant %}
        case .validation: return "Validation"
{% endif %}
        }
    }
{% endif %}
}