Skip to content

Bajix/impl-for

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9a82127 · Oct 27, 2024

History

15 Commits
May 21, 2024
Oct 27, 2024
May 21, 2024
May 21, 2024
May 19, 2024
May 23, 2024
May 19, 2024

Repository files navigation

License Cargo Documentation

Macros for repeating implementations with type substitutions.

Example

Before:

macro_rules! itoa_into_bytes {
    ($t:ty) => {
        impl IntoBytes for $t {
            fn into_bytes(self) -> Vec<u8> {
                let mut buf = ::itoa::Buffer::new();
                let s = buf.format(self);
                s.as_bytes().to_vec()
            }
        }
    };
}

itoa_into_bytes!(i8);
itoa_into_bytes!(u8);
itoa_into_bytes!(i16);
itoa_into_bytes!(u16);
itoa_into_bytes!(i32);
itoa_into_bytes!(u32);
itoa_into_bytes!(i64);
itoa_into_bytes!(u64);
itoa_into_bytes!(isize);
itoa_into_bytes!(usize);

After:

#[impl_for_each(i8, u8, i16, u16, i32, u32, i64, isize, usize)]
impl IntoBytes for T {
    fn into_bytes(self) -> Vec<u8> {
        let mut buf = ::itoa::Buffer::new();
        let s = buf.format(self);
        s.as_bytes().to_vec()
    }
}

About

A proc macro to impl for multiple types

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages