# Pre-RFC: variadic tuple

**URL:** <https://internals.rust-lang.org/t/pre-rfc-variadic-tuple/10878>\
**Category:** language design\
**Created:** [August 27, 2019, 8:00pm UTC](https://internals.rust-lang.org/t/pre-rfc-variadic-tuple/10878 "2019-08-27T20:00:34Z")\
**Posts on this page:** 1\
**Showing post:** 73

<div class="post-metadata">

**Author:** ![kornel](https://sea2.discourse-cdn.com/flex002/user_avatar/internals.rust-lang.org/kornel/32/2711_2.png) [@kornel](https://internals.rust-lang.org/u/kornel)\
**Post date:** [September 13, 2019, 12:04am UTC](https://internals.rust-lang.org/t/pre-rfc-variadic-tuple/10878/73 "2019-09-13T00:04:22Z")

</div>

Is `..` a prefix of the type variable (like variable types in Perl), or a rest/spread operator?

To me it'd make sense as an operator, i.e.:

```rust
fn my_func<T>((..v): (..T)) -> T

```

`T` is a variable tuple (contains `(T1, T2, T3, etc.)`), and `..` takes `T` and spreads it into its components.

If `..` was used in type position, I'd expect it to capture multiple types:

```rust
HashMap<..T>
T == (K, V)

```

---

_[View the full topic](https://internals.rust-lang.org/t/pre-rfc-variadic-tuple/10878)._
