{% 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 %}
}