I've written a detailed analysis of variadic generics as they relate to Rust. It's not exactly a RFC or even a "pre-RFC", so much as survey of existing proposals and my two cents on how variadics should be implemented.
Quick intro: Variadic generics are a way to have a template take an arbitrary number of types; it's basically the template equivalent of C's printf. So in rust that might look like:
fn make_tuple_sing<...T: Sing>(t: (...T)) {
for member in ...t {
member.sing();
}
}
let kpop_band = (KPopStar::new(), KPopStar::new());
let rock_band = (RockStar::new(), RockStar::new(), RockStar::new(), RockStar::new());
let mixed_band = (KPopStar::new(), RockStar::new(), KPopStar::new());
make_tuple_sing(kpop_band);
make_tuple_sing(rock_band);
make_tuple_sing(mixed_band);
The analysis is here: variadics_rfc.md Ā· GitHub
Feel free to comment here or on the reddit thread.