as-what 0.1.1

Provide a bunch of `as` traits.
Documentation
#![no_std]
#![warn(rust_2018_idioms, clippy::dbg_macro, clippy::print_stdout)]
#![allow(clippy::wrong_self_convention)]
#![doc = include_str!("../README.md")]

macro_rules! as_trait {
    ($target_type:ty, $trait_name:ident, $method_name:ident, [$($type:ty),*]) => {
        #[doc = concat!("A trait for converting to [`", stringify!($target_type), "`].")]
        pub trait $trait_name {
            fn $method_name(self) -> $target_type;
        }

        $(
            impl $trait_name for $type {
                #[inline(always)]
                fn $method_name(self) -> $target_type {
                    self as $target_type
                }
            }
        )*
    };
}

as_trait!(
    i8,
    AsI8,
    as_i8,
    [i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, usize, f32, f64, char]
);
as_trait!(
    i16,
    AsI16,
    as_i16,
    [i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, usize, f32, f64, char]
);
as_trait!(
    i32,
    AsI32,
    as_i32,
    [i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, usize, f32, f64, char]
);
as_trait!(
    i64,
    AsI64,
    as_i64,
    [i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, usize, f32, f64, char]
);
as_trait!(
    i128,
    AsI128,
    as_i128,
    [i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, usize, f32, f64, char]
);
as_trait!(
    isize,
    AsIsize,
    as_isize,
    [i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, usize, f32, f64, char]
);
as_trait!(
    u8,
    AsU8,
    as_u8,
    [i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, usize, f32, f64, char]
);
as_trait!(
    u16,
    AsU16,
    as_u16,
    [i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, usize, f32, f64, char]
);
as_trait!(
    u32,
    AsU32,
    as_u32,
    [i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, usize, f32, f64, char]
);
as_trait!(
    u64,
    AsU64,
    as_u64,
    [i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, usize, f32, f64, char]
);
as_trait!(
    u128,
    AsU128,
    as_u128,
    [i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, usize, f32, f64, char]
);
as_trait!(
    usize,
    AsUsize,
    as_usize,
    [i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, usize, f32, f64, char]
);
as_trait!(
    f32,
    AsF32,
    as_f32,
    [i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, usize, f32, f64]
);
as_trait!(
    f64,
    AsF64,
    as_f64,
    [i8, i16, i32, i64, i128, isize, u8, u16, u32, u64, u128, usize, f32, f64]
);
as_trait!(char, AsChar, as_char, [u8, char]);