diff --git a/src/scalars/id.rs b/src/scalars/id.rs index e70c9a98..038e796f 100644 --- a/src/scalars/id.rs +++ b/src/scalars/id.rs @@ -42,14 +42,22 @@ impl Into for ID { } } -impl TryFrom for usize { - type Error = ParseIntError; +macro_rules! try_from_integers { + ($($ty:ty),*) => { + $( + impl TryFrom for $ty { + type Error = ParseIntError; - fn try_from(id: ID) -> std::result::Result { - id.0.parse() - } + fn try_from(id: ID) -> std::result::Result { + id.0.parse() + } + } + )* + }; } +try_from_integers!(i8, i16, i32, i64, u8, u16, u32, u64, isize, usize); + impl TryFrom for uuid::Uuid { type Error = uuid::Error;