///
/// Copyright (c) 2022 Dropbox, Inc. All rights reserved.
///
/// Auto-generated by Stone, do not modify.
///

import Foundation

/// Allows for heterogenous collections of typed requests
public enum {{ class_name }}: CustomStringConvertible {
    {% for route_namespace_pair in background_compatible_routes %}
    {% set namespace = route_namespace_pair[0] %}
    {% set route = route_namespace_pair[1] %}
    case {{ fmt_func_namespace(route.name, route.version, namespace.name) }}({{ request_type_signature(route) }})
    {% endfor %}

    public var description: String {
        switch self {
        {% for route_namespace_pair in background_compatible_routes %}
        {% set namespace = route_namespace_pair[0] %}
        {% set route = route_namespace_pair[1] %}
        case .{{ fmt_func_namespace(route.name, route.version, namespace.name) }}:
            return "{{ fmt_route_name_namespace(route, namespace.name) }}"
        {% endfor %}
        }
    }
}
