Impltools
A set of helper macros
Macros
Autoimpl
#[autoimpl]
is a variant of #[derive]
, supporting:
- explicit generic parameter bounds
- ignored fields
- traits defined using a primary field
- generic re-implementations for traits
use autoimpl;
use Debug;
// Generates: impl<'a, T: Animal + ?Sized> Animal for Box<T> { .. }
// Generates: impl<T, A: Animal> std::fmt::Debug for Named<A> where T: Debug { .. }
// Generates: impl<T, A: Animal> std::ops::Deref for Named<A> { .. }
// Generates: impl<T, A: Animal> std::ops::DerefMut for Named<A> { .. }
Impl Default
#[impl_default]
implements std::default::Default
:
use ;
impl_scope!
Impl Scope
impl_scope!
is a function-like macro used to define a type plus its
implementations. It supports impl Self
syntax:
use impl_scope;
use Display;
impl_scope!
Supported Rust Versions
The MSRV is 1.56.0 (first to support Edition 2021).
Using a nightly compiler will improve diagnostics.
Copyright and Licence
The COPYRIGHT file includes a list of contributors who claim copyright on this project. This list may be incomplete; new contributors may optionally add themselves to this list.
The impl-tools library is published under the terms of the Apache License, Version 2.0. You may obtain a copy of this licence from the LICENSE file or on the following webpage: https://www.apache.org/licenses/LICENSE-2.0