Statusfied
Adds a subscript overload to OrderedDictionary
when the Key
is an OpenAPI.Respose.StatusCode
so that elements can be accessed using the status
keyword.
Because OrderedDictionary
is both a dictionary and a collection, it has always offered subscript access via both Key
and Index
(Int
). OpenAPI.Response.StatusCode
is ExpressibleByIntegerLiteral
so accessing ordered dictionaries of OpenAPI.Response
from the OpenAPI.Operation
responses
property by Int
is ambiguous:
operation.responses[200] // <- is this `StatusCode` 200 or the 200th index of the collection?
Now, code accessing the dictionary with a status key can be written:
operation.responses[status: 200]
Of course, you can still use any other method of constructing a status code as well:
operation.responses[.status(code: 200)] // <- equivalent to above
operation.responses[.range(.success)] // <- means the OpenAPI status code string "2XX"
operation.responses[.default]