impl-template 1.0.0-alpha

A procedural macro for generating impl-blocks based on a simple template.
use impl_template::impl_template;

trait GenericFoo<T> {}

struct Bar;
struct Baz;

struct One;
struct Two;
struct Three;

#[impl_template]
impl GenericFoo<((Bar, Baz))> for ((One, Two, Three)) {}

fn main() {
    assert_impls_foo::<One, Bar>();
    assert_impls_foo::<Two, Bar>();
    assert_impls_foo::<Three, Bar>();

    assert_impls_foo::<One, Baz>();
    assert_impls_foo::<Two, Baz>();
    assert_impls_foo::<Three, Baz>();
}

fn assert_impls_foo<F: GenericFoo<T>, T>() {}