grib/codetables/core.rs
1use num_enum::{TryFromPrimitive, TryFromPrimitiveError};
2
3#[derive(Debug, PartialEq, Eq)]
4pub enum Code<Enum, N> {
5 Name(Enum),
6 Num(N),
7}
8
9impl<Enum, N> From<Result<Enum, TryFromPrimitiveError<Enum>>> for Code<Enum, N>
10where
11 Enum: TryFromPrimitive<Primitive = N>,
12{
13 fn from(result: Result<Enum, TryFromPrimitiveError<Enum>>) -> Self {
14 match result {
15 Ok(e) => Self::Name(e),
16 Err(TryFromPrimitiveError { number: n }) => Self::Num(n),
17 }
18 }
19}