Ordered lowest-severity first, matching the spec’s own ordering: debug
through emergency. Ordering is what a client filter needs, and the spec
defines the order, so there is nothing for this crate to choose.
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
The level’s wire spelling, which is the variant name lowercased.
The spelling is derived rather than stored so the two cannot drift, and
it is the same string Self::from_str accepts — the round trip is
the contract a codec needs, and a stored copy would be a second answer
to keep in step.
Returns LevelError for any other string, including the
right one in the wrong case. A level is a closed set the spec enumerates,
and accepting "Info" would mean emitting something no conforming peer
has agreed to recognise.