First order of business today: simplify my ConvertibleInteger trait!
Previously:
pub trait ConvertibleInteger: TryFrom<i128> {
fn name() -> &'static str;
}
And this required all implementors to supply said function. But since all implementors are primitive types, I can use std::any::type_name::<T>() instead!
So now it's just:
pub trait ConvertibleInteger: TryFrom<i128> {}
impl ConvertibleInteger for u8 {}
impl ConvertibleInteger for u16 {}
impl ConvertibleInteger for u32 {}
impl ConvertibleInteger for u64 {}
impl ConvertibleInteger for u128 {}
impl ConvertibleInteger for usize {}
impl ConvertibleInteger for i8 {}
impl ConvertibleInteger for i16 {}
impl ConvertibleInteger for i32 {}
impl ConvertibleInteger for i64 {}
impl ConvertibleInteger for i128 {}
impl ConvertibleInteger for isize {}
This is so much nicer.
Next up: figure out of I can make a generic function that tries to extract a specific typed value from a
KdlEntry, if there's any value at all.The end goal would be this: