#traits #macro #declaring #time #single

macro single-trait-impl

A macro for declaring and implementing a trait at the same time

1 unstable release

0.1.0 Mar 13, 2023

#1287 in Procedural macros

33 downloads per month

MIT license

4KB

single-trait-impl

Provides a macro for declaring and implementing a trait at the same time. This can be useful when you simply want to add functionality to an existing struct but have no intention to implement it on other structs as well.

In other words, this macro reduces the verbosity of implementing your own trait for a single struct:

#[single_trait_impl]
impl SocketAddrEx for std::net::SocketAddr {
    fn useful_function(&self) {
    }
}

This will expand to the following code:

pub trait SocketAddrEx {
    fn useful_function(&self);
}

impl SocketAddrEx for std::net::SocketAddr {
    fn useful_function(&self) {
    }
}

Dependencies

~1.5MB
~36K SLoC