# Primitive Type tuple

1.0.0 ·## Expand description

A finite heterogeneous sequence, `(T, U, ..)`

.

Let’s cover each of those in turn:

Tuples are *finite*. In other words, a tuple has a length. Here’s a tuple
of length `3`

:

`("hello", 5, 'c');`

Run‘Length’ is also sometimes called ‘arity’ here; each tuple of a different length is a different, distinct type.

Tuples are *heterogeneous*. This means that each element of the tuple can
have a different type. In that tuple above, it has the type:

`(&'static str, i32, char)`

RunTuples are a *sequence*. This means that they can be accessed by position;
this is called ‘tuple indexing’, and it looks like this:

```
let tuple = ("hello", 5, 'c');
assert_eq!(tuple.0, "hello");
assert_eq!(tuple.1, 5);
assert_eq!(tuple.2, 'c');
```

RunThe sequential nature of the tuple applies to its implementations of various
traits. For example, in `PartialOrd`

and `Ord`

, the elements are compared
sequentially until the first non-equal set is found.

For more about tuples, see the book.

## Trait implementations

In this documentation the shorthand `(T₁, T₂, …, Tₙ)`

is used to represent tuples of varying
length. When that is used, any trait bound expressed on `T`

applies to each element of the
tuple independently. Note that this is a convenience notation to avoid repetitive
documentation, not valid Rust syntax.

Due to a temporary restriction in Rust’s type system, the following traits are only implemented on tuples of arity 12 or less. In the future, this may change:

The following traits are implemented for tuples of any length. These traits have implementations that are automatically generated by the compiler, so are not limited by missing language features.

## Examples

Basic usage:

```
let tuple = ("hello", 5, 'c');
assert_eq!(tuple.0, "hello");
```

RunTuples are often used as a return type when you want to return more than one value:

```
fn calculate_point() -> (i32, i32) {
// Don't do a calculation, that's not the point of the example
(4, 5)
}
let point = calculate_point();
assert_eq!(point.0, 4);
assert_eq!(point.1, 5);
// Combining this with patterns can be nicer.
let (x, y) = calculate_point();
assert_eq!(x, 4);
assert_eq!(y, 5);
```

RunHomogenous tuples can be created from arrays of appropriate length:

```
let array: [u32; 3] = [1, 2, 3];
let tuple: (u32, u32, u32) = array.into();
```

Run## Implementations§

## Trait Implementations§

source§### impl<T: Clone> Clone for (T₁, T₂, …, Tₙ)

### impl<T: Clone> Clone for (T₁, T₂, …, Tₙ)

This trait is implemented on arbitrary-length tuples.

source§### impl<A: Debug, Z: Debug, Y: Debug, X: Debug, W: Debug, V: Debug, U: Debug, T> Debug for (A, Z, Y, X, W, V, U, T)where
T: ?Sized + Debug,

### impl<A: Debug, Z: Debug, Y: Debug, X: Debug, W: Debug, V: Debug, U: Debug, T> Debug for (A, Z, Y, X, W, V, U, T)where T: ?Sized + Debug,

source§### impl<B: Debug, A: Debug, Z: Debug, Y: Debug, X: Debug, W: Debug, V: Debug, U: Debug, T> Debug for (B, A, Z, Y, X, W, V, U, T)where
T: ?Sized + Debug,

### impl<B: Debug, A: Debug, Z: Debug, Y: Debug, X: Debug, W: Debug, V: Debug, U: Debug, T> Debug for (B, A, Z, Y, X, W, V, U, T)where T: ?Sized + Debug,

source§### impl<C: Debug, B: Debug, A: Debug, Z: Debug, Y: Debug, X: Debug, W: Debug, V: Debug, U: Debug, T> Debug for (C, B, A, Z, Y, X, W, V, U, T)where
T: ?Sized + Debug,

### impl<C: Debug, B: Debug, A: Debug, Z: Debug, Y: Debug, X: Debug, W: Debug, V: Debug, U: Debug, T> Debug for (C, B, A, Z, Y, X, W, V, U, T)where T: ?Sized + Debug,

source§### impl<D: Debug, C: Debug, B: Debug, A: Debug, Z: Debug, Y: Debug, X: Debug, W: Debug, V: Debug, U: Debug, T> Debug for (D, C, B, A, Z, Y, X, W, V, U, T)where
T: ?Sized + Debug,

### impl<D: Debug, C: Debug, B: Debug, A: Debug, Z: Debug, Y: Debug, X: Debug, W: Debug, V: Debug, U: Debug, T> Debug for (D, C, B, A, Z, Y, X, W, V, U, T)where T: ?Sized + Debug,

source§### impl<E: Debug, D: Debug, C: Debug, B: Debug, A: Debug, Z: Debug, Y: Debug, X: Debug, W: Debug, V: Debug, U: Debug, T> Debug for (E, D, C, B, A, Z, Y, X, W, V, U, T)where
T: ?Sized + Debug,

### impl<E: Debug, D: Debug, C: Debug, B: Debug, A: Debug, Z: Debug, Y: Debug, X: Debug, W: Debug, V: Debug, U: Debug, T> Debug for (E, D, C, B, A, Z, Y, X, W, V, U, T)where T: ?Sized + Debug,

source§### impl<T> Debug for (T₁, T₂, …, Tₙ)where
T: ?Sized + Debug,

### impl<T> Debug for (T₁, T₂, …, Tₙ)where T: ?Sized + Debug,

This trait is implemented for tuples up to twelve items long.

source§### impl<X: Debug, W: Debug, V: Debug, U: Debug, T> Debug for (X, W, V, U, T)where
T: ?Sized + Debug,

### impl<X: Debug, W: Debug, V: Debug, U: Debug, T> Debug for (X, W, V, U, T)where T: ?Sized + Debug,

source§### impl<Y: Debug, X: Debug, W: Debug, V: Debug, U: Debug, T> Debug for (Y, X, W, V, U, T)where
T: ?Sized + Debug,

### impl<Y: Debug, X: Debug, W: Debug, V: Debug, U: Debug, T> Debug for (Y, X, W, V, U, T)where T: ?Sized + Debug,

source§### impl<Z: Debug, Y: Debug, X: Debug, W: Debug, V: Debug, U: Debug, T> Debug for (Z, Y, X, W, V, U, T)where
T: ?Sized + Debug,

### impl<Z: Debug, Y: Debug, X: Debug, W: Debug, V: Debug, U: Debug, T> Debug for (Z, Y, X, W, V, U, T)where T: ?Sized + Debug,

source§### impl<A: Default, Z: Default, Y: Default, X: Default, W: Default, V: Default, U: Default, T: Default> Default for (A, Z, Y, X, W, V, U, T)

### impl<A: Default, Z: Default, Y: Default, X: Default, W: Default, V: Default, U: Default, T: Default> Default for (A, Z, Y, X, W, V, U, T)

source§#### fn default() -> (A, Z, Y, X, W, V, U, T)

#### fn default() -> (A, Z, Y, X, W, V, U, T)

source§### impl<B: Default, A: Default, Z: Default, Y: Default, X: Default, W: Default, V: Default, U: Default, T: Default> Default for (B, A, Z, Y, X, W, V, U, T)

### impl<B: Default, A: Default, Z: Default, Y: Default, X: Default, W: Default, V: Default, U: Default, T: Default> Default for (B, A, Z, Y, X, W, V, U, T)

source§#### fn default() -> (B, A, Z, Y, X, W, V, U, T)

#### fn default() -> (B, A, Z, Y, X, W, V, U, T)

source§### impl<C: Default, B: Default, A: Default, Z: Default, Y: Default, X: Default, W: Default, V: Default, U: Default, T: Default> Default for (C, B, A, Z, Y, X, W, V, U, T)

### impl<C: Default, B: Default, A: Default, Z: Default, Y: Default, X: Default, W: Default, V: Default, U: Default, T: Default> Default for (C, B, A, Z, Y, X, W, V, U, T)

source§#### fn default() -> (C, B, A, Z, Y, X, W, V, U, T)

#### fn default() -> (C, B, A, Z, Y, X, W, V, U, T)

source§### impl<D: Default, C: Default, B: Default, A: Default, Z: Default, Y: Default, X: Default, W: Default, V: Default, U: Default, T: Default> Default for (D, C, B, A, Z, Y, X, W, V, U, T)

### impl<D: Default, C: Default, B: Default, A: Default, Z: Default, Y: Default, X: Default, W: Default, V: Default, U: Default, T: Default> Default for (D, C, B, A, Z, Y, X, W, V, U, T)

source§#### fn default() -> (D, C, B, A, Z, Y, X, W, V, U, T)

#### fn default() -> (D, C, B, A, Z, Y, X, W, V, U, T)

source§### impl<E: Default, D: Default, C: Default, B: Default, A: Default, Z: Default, Y: Default, X: Default, W: Default, V: Default, U: Default, T: Default> Default for (E, D, C, B, A, Z, Y, X, W, V, U, T)

### impl<E: Default, D: Default, C: Default, B: Default, A: Default, Z: Default, Y: Default, X: Default, W: Default, V: Default, U: Default, T: Default> Default for (E, D, C, B, A, Z, Y, X, W, V, U, T)

source§#### fn default() -> (E, D, C, B, A, Z, Y, X, W, V, U, T)

#### fn default() -> (E, D, C, B, A, Z, Y, X, W, V, U, T)

source§### impl<T: Default> Default for (T₁, T₂, …, Tₙ)

### impl<T: Default> Default for (T₁, T₂, …, Tₙ)

This trait is implemented for tuples up to twelve items long.

source§### impl<W: Default, V: Default, U: Default, T: Default> Default for (W, V, U, T)

### impl<W: Default, V: Default, U: Default, T: Default> Default for (W, V, U, T)

source§#### fn default() -> (W, V, U, T)

#### fn default() -> (W, V, U, T)

source§### impl<X: Default, W: Default, V: Default, U: Default, T: Default> Default for (X, W, V, U, T)

### impl<X: Default, W: Default, V: Default, U: Default, T: Default> Default for (X, W, V, U, T)

source§#### fn default() -> (X, W, V, U, T)

#### fn default() -> (X, W, V, U, T)

source§### impl<Y: Default, X: Default, W: Default, V: Default, U: Default, T: Default> Default for (Y, X, W, V, U, T)

### impl<Y: Default, X: Default, W: Default, V: Default, U: Default, T: Default> Default for (Y, X, W, V, U, T)

source§#### fn default() -> (Y, X, W, V, U, T)

#### fn default() -> (Y, X, W, V, U, T)

source§### impl<Z: Default, Y: Default, X: Default, W: Default, V: Default, U: Default, T: Default> Default for (Z, Y, X, W, V, U, T)

### impl<Z: Default, Y: Default, X: Default, W: Default, V: Default, U: Default, T: Default> Default for (Z, Y, X, W, V, U, T)

source§#### fn default() -> (Z, Y, X, W, V, U, T)

#### fn default() -> (Z, Y, X, W, V, U, T)

source§### impl<A: Eq, Z: Eq, Y: Eq, X: Eq, W: Eq, V: Eq, U: Eq, T> Eq for (A, Z, Y, X, W, V, U, T)where
T: ?Sized + Eq,

### impl<A: Eq, Z: Eq, Y: Eq, X: Eq, W: Eq, V: Eq, U: Eq, T> Eq for (A, Z, Y, X, W, V, U, T)where T: ?Sized + Eq,

#### fn assert_receiver_is_total_eq(&self)

source§### impl<B: Eq, A: Eq, Z: Eq, Y: Eq, X: Eq, W: Eq, V: Eq, U: Eq, T> Eq for (B, A, Z, Y, X, W, V, U, T)where
T: ?Sized + Eq,

### impl<B: Eq, A: Eq, Z: Eq, Y: Eq, X: Eq, W: Eq, V: Eq, U: Eq, T> Eq for (B, A, Z, Y, X, W, V, U, T)where T: ?Sized + Eq,

#### fn assert_receiver_is_total_eq(&self)

source§### impl<C: Eq, B: Eq, A: Eq, Z: Eq, Y: Eq, X: Eq, W: Eq, V: Eq, U: Eq, T> Eq for (C, B, A, Z, Y, X, W, V, U, T)where
T: ?Sized + Eq,

### impl<C: Eq, B: Eq, A: Eq, Z: Eq, Y: Eq, X: Eq, W: Eq, V: Eq, U: Eq, T> Eq for (C, B, A, Z, Y, X, W, V, U, T)where T: ?Sized + Eq,

#### fn assert_receiver_is_total_eq(&self)

source§### impl<D: Eq, C: Eq, B: Eq, A: Eq, Z: Eq, Y: Eq, X: Eq, W: Eq, V: Eq, U: Eq, T> Eq for (D, C, B, A, Z, Y, X, W, V, U, T)where
T: ?Sized + Eq,

### impl<D: Eq, C: Eq, B: Eq, A: Eq, Z: Eq, Y: Eq, X: Eq, W: Eq, V: Eq, U: Eq, T> Eq for (D, C, B, A, Z, Y, X, W, V, U, T)where T: ?Sized + Eq,

#### fn assert_receiver_is_total_eq(&self)

source§### impl<E: Eq, D: Eq, C: Eq, B: Eq, A: Eq, Z: Eq, Y: Eq, X: Eq, W: Eq, V: Eq, U: Eq, T> Eq for (E, D, C, B, A, Z, Y, X, W, V, U, T)where
T: ?Sized + Eq,

### impl<E: Eq, D: Eq, C: Eq, B: Eq, A: Eq, Z: Eq, Y: Eq, X: Eq, W: Eq, V: Eq, U: Eq, T> Eq for (E, D, C, B, A, Z, Y, X, W, V, U, T)where T: ?Sized + Eq,

#### fn assert_receiver_is_total_eq(&self)

source§### impl<T> Eq for (T₁, T₂, …, Tₙ)where
T: ?Sized + Eq,

### impl<T> Eq for (T₁, T₂, …, Tₙ)where T: ?Sized + Eq,

This trait is implemented for tuples up to twelve items long.

#### fn assert_receiver_is_total_eq(&self)

source§### impl<U: Eq, T> Eq for (U, T)where
T: ?Sized + Eq,

### impl<U: Eq, T> Eq for (U, T)where T: ?Sized + Eq,

#### fn assert_receiver_is_total_eq(&self)

source§### impl<V: Eq, U: Eq, T> Eq for (V, U, T)where
T: ?Sized + Eq,

### impl<V: Eq, U: Eq, T> Eq for (V, U, T)where T: ?Sized + Eq,

#### fn assert_receiver_is_total_eq(&self)

source§### impl<W: Eq, V: Eq, U: Eq, T> Eq for (W, V, U, T)where
T: ?Sized + Eq,

### impl<W: Eq, V: Eq, U: Eq, T> Eq for (W, V, U, T)where T: ?Sized + Eq,

#### fn assert_receiver_is_total_eq(&self)

source§### impl<X: Eq, W: Eq, V: Eq, U: Eq, T> Eq for (X, W, V, U, T)where
T: ?Sized + Eq,

### impl<X: Eq, W: Eq, V: Eq, U: Eq, T> Eq for (X, W, V, U, T)where T: ?Sized + Eq,

#### fn assert_receiver_is_total_eq(&self)

source§### impl<Y: Eq, X: Eq, W: Eq, V: Eq, U: Eq, T> Eq for (Y, X, W, V, U, T)where
T: ?Sized + Eq,

### impl<Y: Eq, X: Eq, W: Eq, V: Eq, U: Eq, T> Eq for (Y, X, W, V, U, T)where T: ?Sized + Eq,

#### fn assert_receiver_is_total_eq(&self)

source§### impl<Z: Eq, Y: Eq, X: Eq, W: Eq, V: Eq, U: Eq, T> Eq for (Z, Y, X, W, V, U, T)where
T: ?Sized + Eq,

### impl<Z: Eq, Y: Eq, X: Eq, W: Eq, V: Eq, U: Eq, T> Eq for (Z, Y, X, W, V, U, T)where T: ?Sized + Eq,

#### fn assert_receiver_is_total_eq(&self)

1.56.0 · source§### impl<A, B, ExtendA, ExtendB> Extend<(A, B)> for (ExtendA, ExtendB)where
ExtendA: Extend<A>,
ExtendB: Extend<B>,

### impl<A, B, ExtendA, ExtendB> Extend<(A, B)> for (ExtendA, ExtendB)where ExtendA: Extend<A>, ExtendB: Extend<B>,

source§#### fn extend<T: IntoIterator<Item = (A, B)>>(&mut self, into_iter: T)

#### fn extend<T: IntoIterator<Item = (A, B)>>(&mut self, into_iter: T)

Allows to `extend`

a tuple of collections that also implement `Extend`

.

See also: `Iterator::unzip`

##### Examples

```
let mut tuple = (vec![0], vec![1]);
tuple.extend([(2, 3), (4, 5), (6, 7)]);
assert_eq!(tuple.0, [0, 2, 4, 6]);
assert_eq!(tuple.1, [1, 3, 5, 7]);
// also allows for arbitrarily nested tuples as elements
let mut nested_tuple = (vec![1], (vec![2], vec![3]));
nested_tuple.extend([(4, (5, 6)), (7, (8, 9))]);
let (a, (b, c)) = nested_tuple;
assert_eq!(a, [1, 4, 7]);
assert_eq!(b, [2, 5, 8]);
assert_eq!(c, [3, 6, 9]);
```

Runsource§#### fn extend_one(&mut self, item: (A, B))

#### fn extend_one(&mut self, item: (A, B))

`extend_one`

#72631)1.71.0 · source§### impl<T> From<[T; 10]> for (T, T, T, T, T, T, T, T, T, T)

### impl<T> From<[T; 10]> for (T, T, T, T, T, T, T, T, T, T)

1.71.0 · source§### impl<T> From<[T; 11]> for (T, T, T, T, T, T, T, T, T, T, T)

### impl<T> From<[T; 11]> for (T, T, T, T, T, T, T, T, T, T, T)

1.71.0 · source§### impl<T> From<[T; 12]> for (T, T, T, T, T, T, T, T, T, T, T, T)

### impl<T> From<[T; 12]> for (T, T, T, T, T, T, T, T, T, T, T, T)

1.71.0 · source§### impl<T> From<[T; 4]> for (T, T, T, T)

### impl<T> From<[T; 4]> for (T, T, T, T)

1.71.0 · source§### impl<T> From<[T; 5]> for (T, T, T, T, T)

### impl<T> From<[T; 5]> for (T, T, T, T, T)

1.71.0 · source§### impl<T> From<[T; 6]> for (T, T, T, T, T, T)

### impl<T> From<[T; 6]> for (T, T, T, T, T, T)

1.71.0 · source§### impl<T> From<[T; 7]> for (T, T, T, T, T, T, T)

### impl<T> From<[T; 7]> for (T, T, T, T, T, T, T)

1.71.0 · source§### impl<T> From<[T; 8]> for (T, T, T, T, T, T, T, T)

### impl<T> From<[T; 8]> for (T, T, T, T, T, T, T, T)

1.71.0 · source§### impl<T> From<[T; 9]> for (T, T, T, T, T, T, T, T, T)

### impl<T> From<[T; 9]> for (T, T, T, T, T, T, T, T, T)

1.17.0 · source§### impl<I: Into<IpAddr>> From<(I, u16)> for SocketAddr

### impl<I: Into<IpAddr>> From<(I, u16)> for SocketAddr

source§#### fn from(pieces: (I, u16)) -> SocketAddr

#### fn from(pieces: (I, u16)) -> SocketAddr

Converts a tuple struct (Into<`IpAddr`

>, `u16`

) into a `SocketAddr`

.

This conversion creates a `SocketAddr::V4`

for an `IpAddr::V4`

and creates a `SocketAddr::V6`

for an `IpAddr::V6`

.

`u16`

is treated as port of the newly created `SocketAddr`

.

1.71.0 · source§### impl<T> From<(T, T, T, T)> for [T; 4]

### impl<T> From<(T, T, T, T)> for [T; 4]

source§#### fn from(tuple: (T, T, T, T)) -> Self

#### fn from(tuple: (T, T, T, T)) -> Self

1.71.0 · source§### impl<T> From<(T, T, T, T, T)> for [T; 5]

### impl<T> From<(T, T, T, T, T)> for [T; 5]

source§#### fn from(tuple: (T, T, T, T, T)) -> Self

#### fn from(tuple: (T, T, T, T, T)) -> Self

1.71.0 · source§### impl<T> From<(T, T, T, T, T, T)> for [T; 6]

### impl<T> From<(T, T, T, T, T, T)> for [T; 6]

source§#### fn from(tuple: (T, T, T, T, T, T)) -> Self

#### fn from(tuple: (T, T, T, T, T, T)) -> Self

1.71.0 · source§### impl<T> From<(T, T, T, T, T, T, T)> for [T; 7]

### impl<T> From<(T, T, T, T, T, T, T)> for [T; 7]

source§#### fn from(tuple: (T, T, T, T, T, T, T)) -> Self

#### fn from(tuple: (T, T, T, T, T, T, T)) -> Self

1.71.0 · source§### impl<T> From<(T, T, T, T, T, T, T, T)> for [T; 8]

### impl<T> From<(T, T, T, T, T, T, T, T)> for [T; 8]

source§#### fn from(tuple: (T, T, T, T, T, T, T, T)) -> Self

#### fn from(tuple: (T, T, T, T, T, T, T, T)) -> Self

1.71.0 · source§### impl<T> From<(T, T, T, T, T, T, T, T, T)> for [T; 9]

### impl<T> From<(T, T, T, T, T, T, T, T, T)> for [T; 9]

source§#### fn from(tuple: (T, T, T, T, T, T, T, T, T)) -> Self

#### fn from(tuple: (T, T, T, T, T, T, T, T, T)) -> Self

1.71.0 · source§### impl<T> From<(T, T, T, T, T, T, T, T, T, T)> for [T; 10]

### impl<T> From<(T, T, T, T, T, T, T, T, T, T)> for [T; 10]

source§#### fn from(tuple: (T, T, T, T, T, T, T, T, T, T)) -> Self

#### fn from(tuple: (T, T, T, T, T, T, T, T, T, T)) -> Self

1.71.0 · source§### impl<T> From<(T, T, T, T, T, T, T, T, T, T, T)> for [T; 11]

### impl<T> From<(T, T, T, T, T, T, T, T, T, T, T)> for [T; 11]

source§#### fn from(tuple: (T, T, T, T, T, T, T, T, T, T, T)) -> Self

#### fn from(tuple: (T, T, T, T, T, T, T, T, T, T, T)) -> Self

1.71.0 · source§### impl<T> From<(T, T, T, T, T, T, T, T, T, T, T, T)> for [T; 12]

### impl<T> From<(T, T, T, T, T, T, T, T, T, T, T, T)> for [T; 12]

source§#### fn from(tuple: (T, T, T, T, T, T, T, T, T, T, T, T)) -> Self

#### fn from(tuple: (T, T, T, T, T, T, T, T, T, T, T, T)) -> Self

source§### impl<T> Hash for (T₁, T₂, …, Tₙ)where
T: ?Sized + Hash,

### impl<T> Hash for (T₁, T₂, …, Tₙ)where T: ?Sized + Hash,

This trait is implemented for tuples up to twelve items long.

source§### impl<T: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F> Hash for (T, B, C, D, E, F)where
F: ?Sized + Hash,

### impl<T: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F> Hash for (T, B, C, D, E, F)where F: ?Sized + Hash,

source§### impl<T: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F: Hash, G> Hash for (T, B, C, D, E, F, G)where
G: ?Sized + Hash,

### impl<T: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F: Hash, G> Hash for (T, B, C, D, E, F, G)where G: ?Sized + Hash,

source§### impl<T: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F: Hash, G: Hash, H> Hash for (T, B, C, D, E, F, G, H)where
H: ?Sized + Hash,

### impl<T: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F: Hash, G: Hash, H> Hash for (T, B, C, D, E, F, G, H)where H: ?Sized + Hash,

source§### impl<T: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F: Hash, G: Hash, H: Hash, I> Hash for (T, B, C, D, E, F, G, H, I)where
I: ?Sized + Hash,

### impl<T: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F: Hash, G: Hash, H: Hash, I> Hash for (T, B, C, D, E, F, G, H, I)where I: ?Sized + Hash,

source§### impl<T: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F: Hash, G: Hash, H: Hash, I: Hash, J> Hash for (T, B, C, D, E, F, G, H, I, J)where
J: ?Sized + Hash,

### impl<T: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F: Hash, G: Hash, H: Hash, I: Hash, J> Hash for (T, B, C, D, E, F, G, H, I, J)where J: ?Sized + Hash,

source§### impl<T: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F: Hash, G: Hash, H: Hash, I: Hash, J: Hash, K> Hash for (T, B, C, D, E, F, G, H, I, J, K)where
K: ?Sized + Hash,

### impl<T: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F: Hash, G: Hash, H: Hash, I: Hash, J: Hash, K> Hash for (T, B, C, D, E, F, G, H, I, J, K)where K: ?Sized + Hash,

source§### impl<T: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F: Hash, G: Hash, H: Hash, I: Hash, J: Hash, K: Hash, L> Hash for (T, B, C, D, E, F, G, H, I, J, K, L)where
L: ?Sized + Hash,

### impl<T: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F: Hash, G: Hash, H: Hash, I: Hash, J: Hash, K: Hash, L> Hash for (T, B, C, D, E, F, G, H, I, J, K, L)where L: ?Sized + Hash,

source§### impl<A: Ord, Z: Ord, Y: Ord, X: Ord, W: Ord, V: Ord, U: Ord, T> Ord for (A, Z, Y, X, W, V, U, T)where
T: ?Sized + Ord,

### impl<A: Ord, Z: Ord, Y: Ord, X: Ord, W: Ord, V: Ord, U: Ord, T> Ord for (A, Z, Y, X, W, V, U, T)where T: ?Sized + Ord,

source§### impl<B: Ord, A: Ord, Z: Ord, Y: Ord, X: Ord, W: Ord, V: Ord, U: Ord, T> Ord for (B, A, Z, Y, X, W, V, U, T)where
T: ?Sized + Ord,

### impl<B: Ord, A: Ord, Z: Ord, Y: Ord, X: Ord, W: Ord, V: Ord, U: Ord, T> Ord for (B, A, Z, Y, X, W, V, U, T)where T: ?Sized + Ord,

source§### impl<C: Ord, B: Ord, A: Ord, Z: Ord, Y: Ord, X: Ord, W: Ord, V: Ord, U: Ord, T> Ord for (C, B, A, Z, Y, X, W, V, U, T)where
T: ?Sized + Ord,

### impl<C: Ord, B: Ord, A: Ord, Z: Ord, Y: Ord, X: Ord, W: Ord, V: Ord, U: Ord, T> Ord for (C, B, A, Z, Y, X, W, V, U, T)where T: ?Sized + Ord,

source§### impl<D: Ord, C: Ord, B: Ord, A: Ord, Z: Ord, Y: Ord, X: Ord, W: Ord, V: Ord, U: Ord, T> Ord for (D, C, B, A, Z, Y, X, W, V, U, T)where
T: ?Sized + Ord,

### impl<D: Ord, C: Ord, B: Ord, A: Ord, Z: Ord, Y: Ord, X: Ord, W: Ord, V: Ord, U: Ord, T> Ord for (D, C, B, A, Z, Y, X, W, V, U, T)where T: ?Sized + Ord,

source§### impl<E: Ord, D: Ord, C: Ord, B: Ord, A: Ord, Z: Ord, Y: Ord, X: Ord, W: Ord, V: Ord, U: Ord, T> Ord for (E, D, C, B, A, Z, Y, X, W, V, U, T)where
T: ?Sized + Ord,

### impl<E: Ord, D: Ord, C: Ord, B: Ord, A: Ord, Z: Ord, Y: Ord, X: Ord, W: Ord, V: Ord, U: Ord, T> Ord for (E, D, C, B, A, Z, Y, X, W, V, U, T)where T: ?Sized + Ord,

source§### impl<T> Ord for (T₁, T₂, …, Tₙ)where
T: ?Sized + Ord,

### impl<T> Ord for (T₁, T₂, …, Tₙ)where T: ?Sized + Ord,

This trait is implemented for tuples up to twelve items long.

source§### impl<Y: Ord, X: Ord, W: Ord, V: Ord, U: Ord, T> Ord for (Y, X, W, V, U, T)where
T: ?Sized + Ord,

### impl<Y: Ord, X: Ord, W: Ord, V: Ord, U: Ord, T> Ord for (Y, X, W, V, U, T)where T: ?Sized + Ord,

source§### impl<Z: Ord, Y: Ord, X: Ord, W: Ord, V: Ord, U: Ord, T> Ord for (Z, Y, X, W, V, U, T)where
T: ?Sized + Ord,

### impl<Z: Ord, Y: Ord, X: Ord, W: Ord, V: Ord, U: Ord, T> Ord for (Z, Y, X, W, V, U, T)where T: ?Sized + Ord,

source§### impl<A: PartialEq, Z: PartialEq, Y: PartialEq, X: PartialEq, W: PartialEq, V: PartialEq, U: PartialEq, T> PartialEq<(A, Z, Y, X, W, V, U, T)> for (A, Z, Y, X, W, V, U, T)where
T: ?Sized + PartialEq,

### impl<A: PartialEq, Z: PartialEq, Y: PartialEq, X: PartialEq, W: PartialEq, V: PartialEq, U: PartialEq, T> PartialEq<(A, Z, Y, X, W, V, U, T)> for (A, Z, Y, X, W, V, U, T)where T: ?Sized + PartialEq,

source§#### fn eq(&self, other: &(A, Z, Y, X, W, V, U, T)) -> bool

#### fn eq(&self, other: &(A, Z, Y, X, W, V, U, T)) -> bool

`self`

and `other`

values to be equal, and is used
by `==`

.source§#### fn ne(&self, other: &(A, Z, Y, X, W, V, U, T)) -> bool

#### fn ne(&self, other: &(A, Z, Y, X, W, V, U, T)) -> bool

`!=`

. The default implementation is almost always
sufficient, and should not be overridden without very good reason.source§### impl<B: PartialEq, A: PartialEq, Z: PartialEq, Y: PartialEq, X: PartialEq, W: PartialEq, V: PartialEq, U: PartialEq, T> PartialEq<(B, A, Z, Y, X, W, V, U, T)> for (B, A, Z, Y, X, W, V, U, T)where
T: ?Sized + PartialEq,

### impl<B: PartialEq, A: PartialEq, Z: PartialEq, Y: PartialEq, X: PartialEq, W: PartialEq, V: PartialEq, U: PartialEq, T> PartialEq<(B, A, Z, Y, X, W, V, U, T)> for (B, A, Z, Y, X, W, V, U, T)where T: ?Sized + PartialEq,

source§#### fn eq(&self, other: &(B, A, Z, Y, X, W, V, U, T)) -> bool

#### fn eq(&self, other: &(B, A, Z, Y, X, W, V, U, T)) -> bool

`self`

and `other`

values to be equal, and is used
by `==`

.source§#### fn ne(&self, other: &(B, A, Z, Y, X, W, V, U, T)) -> bool

#### fn ne(&self, other: &(B, A, Z, Y, X, W, V, U, T)) -> bool

`!=`

. The default implementation is almost always
sufficient, and should not be overridden without very good reason.source§### impl<C: PartialEq, B: PartialEq, A: PartialEq, Z: PartialEq, Y: PartialEq, X: PartialEq, W: PartialEq, V: PartialEq, U: PartialEq, T> PartialEq<(C, B, A, Z, Y, X, W, V, U, T)> for (C, B, A, Z, Y, X, W, V, U, T)where
T: ?Sized + PartialEq,

### impl<C: PartialEq, B: PartialEq, A: PartialEq, Z: PartialEq, Y: PartialEq, X: PartialEq, W: PartialEq, V: PartialEq, U: PartialEq, T> PartialEq<(C, B, A, Z, Y, X, W, V, U, T)> for (C, B, A, Z, Y, X, W, V, U, T)where T: ?Sized + PartialEq,

source§#### fn eq(&self, other: &(C, B, A, Z, Y, X, W, V, U, T)) -> bool

#### fn eq(&self, other: &(C, B, A, Z, Y, X, W, V, U, T)) -> bool

`self`

and `other`

values to be equal, and is used
by `==`

.source§#### fn ne(&self, other: &(C, B, A, Z, Y, X, W, V, U, T)) -> bool

#### fn ne(&self, other: &(C, B, A, Z, Y, X, W, V, U, T)) -> bool

`!=`

. The default implementation is almost always
sufficient, and should not be overridden without very good reason.source§### impl<D: PartialEq, C: PartialEq, B: PartialEq, A: PartialEq, Z: PartialEq, Y: PartialEq, X: PartialEq, W: PartialEq, V: PartialEq, U: PartialEq, T> PartialEq<(D, C, B, A, Z, Y, X, W, V, U, T)> for (D, C, B, A, Z, Y, X, W, V, U, T)where
T: ?Sized + PartialEq,

### impl<D: PartialEq, C: PartialEq, B: PartialEq, A: PartialEq, Z: PartialEq, Y: PartialEq, X: PartialEq, W: PartialEq, V: PartialEq, U: PartialEq, T> PartialEq<(D, C, B, A, Z, Y, X, W, V, U, T)> for (D, C, B, A, Z, Y, X, W, V, U, T)where T: ?Sized + PartialEq,

source§#### fn eq(&self, other: &(D, C, B, A, Z, Y, X, W, V, U, T)) -> bool

#### fn eq(&self, other: &(D, C, B, A, Z, Y, X, W, V, U, T)) -> bool

`self`

and `other`

values to be equal, and is used
by `==`

.source§#### fn ne(&self, other: &(D, C, B, A, Z, Y, X, W, V, U, T)) -> bool

#### fn ne(&self, other: &(D, C, B, A, Z, Y, X, W, V, U, T)) -> bool

`!=`

. The default implementation is almost always
sufficient, and should not be overridden without very good reason.source§### impl<E: PartialEq, D: PartialEq, C: PartialEq, B: PartialEq, A: PartialEq, Z: PartialEq, Y: PartialEq, X: PartialEq, W: PartialEq, V: PartialEq, U: PartialEq, T> PartialEq<(E, D, C, B, A, Z, Y, X, W, V, U, T)> for (E, D, C, B, A, Z, Y, X, W, V, U, T)where
T: ?Sized + PartialEq,

### impl<E: PartialEq, D: PartialEq, C: PartialEq, B: PartialEq, A: PartialEq, Z: PartialEq, Y: PartialEq, X: PartialEq, W: PartialEq, V: PartialEq, U: PartialEq, T> PartialEq<(E, D, C, B, A, Z, Y, X, W, V, U, T)> for (E, D, C, B, A, Z, Y, X, W, V, U, T)where T: ?Sized + PartialEq,

source§#### fn eq(&self, other: &(E, D, C, B, A, Z, Y, X, W, V, U, T)) -> bool

#### fn eq(&self, other: &(E, D, C, B, A, Z, Y, X, W, V, U, T)) -> bool

`self`

and `other`

values to be equal, and is used
by `==`

.source§#### fn ne(&self, other: &(E, D, C, B, A, Z, Y, X, W, V, U, T)) -> bool

#### fn ne(&self, other: &(E, D, C, B, A, Z, Y, X, W, V, U, T)) -> bool

`!=`

. The default implementation is almost always
sufficient, and should not be overridden without very good reason.source§### impl<T> PartialEq<(T,)> for (T₁, T₂, …, Tₙ)where
T: ?Sized + PartialEq,

### impl<T> PartialEq<(T,)> for (T₁, T₂, …, Tₙ)where T: ?Sized + PartialEq,

This trait is implemented for tuples up to twelve items long.

source§### impl<V: PartialEq, U: PartialEq, T> PartialEq<(V, U, T)> for (V, U, T)where
T: ?Sized + PartialEq,

### impl<V: PartialEq, U: PartialEq, T> PartialEq<(V, U, T)> for (V, U, T)where T: ?Sized + PartialEq,

source§### impl<W: PartialEq, V: PartialEq, U: PartialEq, T> PartialEq<(W, V, U, T)> for (W, V, U, T)where
T: ?Sized + PartialEq,

### impl<W: PartialEq, V: PartialEq, U: PartialEq, T> PartialEq<(W, V, U, T)> for (W, V, U, T)where T: ?Sized + PartialEq,

source§#### fn eq(&self, other: &(W, V, U, T)) -> bool

#### fn eq(&self, other: &(W, V, U, T)) -> bool

`self`

and `other`

values to be equal, and is used
by `==`

.source§#### fn ne(&self, other: &(W, V, U, T)) -> bool

#### fn ne(&self, other: &(W, V, U, T)) -> bool

`!=`

. The default implementation is almost always
sufficient, and should not be overridden without very good reason.source§### impl<X: PartialEq, W: PartialEq, V: PartialEq, U: PartialEq, T> PartialEq<(X, W, V, U, T)> for (X, W, V, U, T)where
T: ?Sized + PartialEq,

### impl<X: PartialEq, W: PartialEq, V: PartialEq, U: PartialEq, T> PartialEq<(X, W, V, U, T)> for (X, W, V, U, T)where T: ?Sized + PartialEq,

source§#### fn eq(&self, other: &(X, W, V, U, T)) -> bool

#### fn eq(&self, other: &(X, W, V, U, T)) -> bool

`self`

and `other`

values to be equal, and is used
by `==`

.source§#### fn ne(&self, other: &(X, W, V, U, T)) -> bool

#### fn ne(&self, other: &(X, W, V, U, T)) -> bool

`!=`

. The default implementation is almost always
sufficient, and should not be overridden without very good reason.source§### impl<Y: PartialEq, X: PartialEq, W: PartialEq, V: PartialEq, U: PartialEq, T> PartialEq<(Y, X, W, V, U, T)> for (Y, X, W, V, U, T)where
T: ?Sized + PartialEq,

### impl<Y: PartialEq, X: PartialEq, W: PartialEq, V: PartialEq, U: PartialEq, T> PartialEq<(Y, X, W, V, U, T)> for (Y, X, W, V, U, T)where T: ?Sized + PartialEq,

source§#### fn eq(&self, other: &(Y, X, W, V, U, T)) -> bool

#### fn eq(&self, other: &(Y, X, W, V, U, T)) -> bool

`self`

and `other`

values to be equal, and is used
by `==`

.source§#### fn ne(&self, other: &(Y, X, W, V, U, T)) -> bool

#### fn ne(&self, other: &(Y, X, W, V, U, T)) -> bool

`!=`

. The default implementation is almost always
sufficient, and should not be overridden without very good reason.source§### impl<Z: PartialEq, Y: PartialEq, X: PartialEq, W: PartialEq, V: PartialEq, U: PartialEq, T> PartialEq<(Z, Y, X, W, V, U, T)> for (Z, Y, X, W, V, U, T)where
T: ?Sized + PartialEq,

### impl<Z: PartialEq, Y: PartialEq, X: PartialEq, W: PartialEq, V: PartialEq, U: PartialEq, T> PartialEq<(Z, Y, X, W, V, U, T)> for (Z, Y, X, W, V, U, T)where T: ?Sized + PartialEq,

source§#### fn eq(&self, other: &(Z, Y, X, W, V, U, T)) -> bool

#### fn eq(&self, other: &(Z, Y, X, W, V, U, T)) -> bool

`self`

and `other`

values to be equal, and is used
by `==`

.source§#### fn ne(&self, other: &(Z, Y, X, W, V, U, T)) -> bool

#### fn ne(&self, other: &(Z, Y, X, W, V, U, T)) -> bool

`!=`

. The default implementation is almost always
sufficient, and should not be overridden without very good reason.source§### impl<A: PartialOrd, Z: PartialOrd, Y: PartialOrd, X: PartialOrd, W: PartialOrd, V: PartialOrd, U: PartialOrd, T> PartialOrd<(A, Z, Y, X, W, V, U, T)> for (A, Z, Y, X, W, V, U, T)where
T: ?Sized + PartialOrd,

### impl<A: PartialOrd, Z: PartialOrd, Y: PartialOrd, X: PartialOrd, W: PartialOrd, V: PartialOrd, U: PartialOrd, T> PartialOrd<(A, Z, Y, X, W, V, U, T)> for (A, Z, Y, X, W, V, U, T)where T: ?Sized + PartialOrd,

source§#### fn partial_cmp(&self, other: &(A, Z, Y, X, W, V, U, T)) -> Option<Ordering>

#### fn partial_cmp(&self, other: &(A, Z, Y, X, W, V, U, T)) -> Option<Ordering>

source§#### fn lt(&self, other: &(A, Z, Y, X, W, V, U, T)) -> bool

#### fn lt(&self, other: &(A, Z, Y, X, W, V, U, T)) -> bool

source§#### fn le(&self, other: &(A, Z, Y, X, W, V, U, T)) -> bool

#### fn le(&self, other: &(A, Z, Y, X, W, V, U, T)) -> bool

`self`

and `other`

) and is used by the `<=`

operator. Read moresource§### impl<B: PartialOrd, A: PartialOrd, Z: PartialOrd, Y: PartialOrd, X: PartialOrd, W: PartialOrd, V: PartialOrd, U: PartialOrd, T> PartialOrd<(B, A, Z, Y, X, W, V, U, T)> for (B, A, Z, Y, X, W, V, U, T)where
T: ?Sized + PartialOrd,

### impl<B: PartialOrd, A: PartialOrd, Z: PartialOrd, Y: PartialOrd, X: PartialOrd, W: PartialOrd, V: PartialOrd, U: PartialOrd, T> PartialOrd<(B, A, Z, Y, X, W, V, U, T)> for (B, A, Z, Y, X, W, V, U, T)where T: ?Sized + PartialOrd,

source§#### fn partial_cmp(&self, other: &(B, A, Z, Y, X, W, V, U, T)) -> Option<Ordering>

#### fn partial_cmp(&self, other: &(B, A, Z, Y, X, W, V, U, T)) -> Option<Ordering>

source§#### fn lt(&self, other: &(B, A, Z, Y, X, W, V, U, T)) -> bool

#### fn lt(&self, other: &(B, A, Z, Y, X, W, V, U, T)) -> bool

source§#### fn le(&self, other: &(B, A, Z, Y, X, W, V, U, T)) -> bool

#### fn le(&self, other: &(B, A, Z, Y, X, W, V, U, T)) -> bool

`self`

and `other`

) and is used by the `<=`

operator. Read moresource§### impl<C: PartialOrd, B: PartialOrd, A: PartialOrd, Z: PartialOrd, Y: PartialOrd, X: PartialOrd, W: PartialOrd, V: PartialOrd, U: PartialOrd, T> PartialOrd<(C, B, A, Z, Y, X, W, V, U, T)> for (C, B, A, Z, Y, X, W, V, U, T)where
T: ?Sized + PartialOrd,

### impl<C: PartialOrd, B: PartialOrd, A: PartialOrd, Z: PartialOrd, Y: PartialOrd, X: PartialOrd, W: PartialOrd, V: PartialOrd, U: PartialOrd, T> PartialOrd<(C, B, A, Z, Y, X, W, V, U, T)> for (C, B, A, Z, Y, X, W, V, U, T)where T: ?Sized + PartialOrd,

source§#### fn partial_cmp(
&self,
other: &(C, B, A, Z, Y, X, W, V, U, T)
) -> Option<Ordering>

#### fn partial_cmp( &self, other: &(C, B, A, Z, Y, X, W, V, U, T) ) -> Option<Ordering>

source§#### fn lt(&self, other: &(C, B, A, Z, Y, X, W, V, U, T)) -> bool

#### fn lt(&self, other: &(C, B, A, Z, Y, X, W, V, U, T)) -> bool

source§#### fn le(&self, other: &(C, B, A, Z, Y, X, W, V, U, T)) -> bool

#### fn le(&self, other: &(C, B, A, Z, Y, X, W, V, U, T)) -> bool

`self`

and `other`

) and is used by the `<=`

operator. Read moresource§### impl<D: PartialOrd, C: PartialOrd, B: PartialOrd, A: PartialOrd, Z: PartialOrd, Y: PartialOrd, X: PartialOrd, W: PartialOrd, V: PartialOrd, U: PartialOrd, T> PartialOrd<(D, C, B, A, Z, Y, X, W, V, U, T)> for (D, C, B, A, Z, Y, X, W, V, U, T)where
T: ?Sized + PartialOrd,

### impl<D: PartialOrd, C: PartialOrd, B: PartialOrd, A: PartialOrd, Z: PartialOrd, Y: PartialOrd, X: PartialOrd, W: PartialOrd, V: PartialOrd, U: PartialOrd, T> PartialOrd<(D, C, B, A, Z, Y, X, W, V, U, T)> for (D, C, B, A, Z, Y, X, W, V, U, T)where T: ?Sized + PartialOrd,

source§#### fn partial_cmp(
&self,
other: &(D, C, B, A, Z, Y, X, W, V, U, T)
) -> Option<Ordering>

#### fn partial_cmp( &self, other: &(D, C, B, A, Z, Y, X, W, V, U, T) ) -> Option<Ordering>

source§#### fn lt(&self, other: &(D, C, B, A, Z, Y, X, W, V, U, T)) -> bool

#### fn lt(&self, other: &(D, C, B, A, Z, Y, X, W, V, U, T)) -> bool

source§#### fn le(&self, other: &(D, C, B, A, Z, Y, X, W, V, U, T)) -> bool

#### fn le(&self, other: &(D, C, B, A, Z, Y, X, W, V, U, T)) -> bool

`self`

and `other`

) and is used by the `<=`

operator. Read moresource§### impl<E: PartialOrd, D: PartialOrd, C: PartialOrd, B: PartialOrd, A: PartialOrd, Z: PartialOrd, Y: PartialOrd, X: PartialOrd, W: PartialOrd, V: PartialOrd, U: PartialOrd, T> PartialOrd<(E, D, C, B, A, Z, Y, X, W, V, U, T)> for (E, D, C, B, A, Z, Y, X, W, V, U, T)where
T: ?Sized + PartialOrd,

### impl<E: PartialOrd, D: PartialOrd, C: PartialOrd, B: PartialOrd, A: PartialOrd, Z: PartialOrd, Y: PartialOrd, X: PartialOrd, W: PartialOrd, V: PartialOrd, U: PartialOrd, T> PartialOrd<(E, D, C, B, A, Z, Y, X, W, V, U, T)> for (E, D, C, B, A, Z, Y, X, W, V, U, T)where T: ?Sized + PartialOrd,

source§#### fn partial_cmp(
&self,
other: &(E, D, C, B, A, Z, Y, X, W, V, U, T)
) -> Option<Ordering>

#### fn partial_cmp( &self, other: &(E, D, C, B, A, Z, Y, X, W, V, U, T) ) -> Option<Ordering>

source§#### fn lt(&self, other: &(E, D, C, B, A, Z, Y, X, W, V, U, T)) -> bool

#### fn lt(&self, other: &(E, D, C, B, A, Z, Y, X, W, V, U, T)) -> bool

source§#### fn le(&self, other: &(E, D, C, B, A, Z, Y, X, W, V, U, T)) -> bool

#### fn le(&self, other: &(E, D, C, B, A, Z, Y, X, W, V, U, T)) -> bool

`self`

and `other`

) and is used by the `<=`

operator. Read moresource§### impl<T> PartialOrd<(T,)> for (T₁, T₂, …, Tₙ)where
T: ?Sized + PartialOrd,

### impl<T> PartialOrd<(T,)> for (T₁, T₂, …, Tₙ)where T: ?Sized + PartialOrd,

This trait is implemented for tuples up to twelve items long.

source§#### fn le(&self, other: &(T,)) -> bool

#### fn le(&self, other: &(T,)) -> bool

`self`

and `other`

) and is used by the `<=`

operator. Read moresource§### impl<U: PartialOrd, T> PartialOrd<(U, T)> for (U, T)where
T: ?Sized + PartialOrd,

### impl<U: PartialOrd, T> PartialOrd<(U, T)> for (U, T)where T: ?Sized + PartialOrd,

source§#### fn le(&self, other: &(U, T)) -> bool

#### fn le(&self, other: &(U, T)) -> bool

`self`

and `other`

) and is used by the `<=`

operator. Read moresource§### impl<V: PartialOrd, U: PartialOrd, T> PartialOrd<(V, U, T)> for (V, U, T)where
T: ?Sized + PartialOrd,

### impl<V: PartialOrd, U: PartialOrd, T> PartialOrd<(V, U, T)> for (V, U, T)where T: ?Sized + PartialOrd,

source§#### fn le(&self, other: &(V, U, T)) -> bool

#### fn le(&self, other: &(V, U, T)) -> bool

`self`

and `other`

) and is used by the `<=`

operator. Read moresource§### impl<W: PartialOrd, V: PartialOrd, U: PartialOrd, T> PartialOrd<(W, V, U, T)> for (W, V, U, T)where
T: ?Sized + PartialOrd,

### impl<W: PartialOrd, V: PartialOrd, U: PartialOrd, T> PartialOrd<(W, V, U, T)> for (W, V, U, T)where T: ?Sized + PartialOrd,

source§#### fn partial_cmp(&self, other: &(W, V, U, T)) -> Option<Ordering>

#### fn partial_cmp(&self, other: &(W, V, U, T)) -> Option<Ordering>

source§#### fn lt(&self, other: &(W, V, U, T)) -> bool

#### fn lt(&self, other: &(W, V, U, T)) -> bool

source§#### fn le(&self, other: &(W, V, U, T)) -> bool

#### fn le(&self, other: &(W, V, U, T)) -> bool

`self`

and `other`

) and is used by the `<=`

operator. Read moresource§### impl<X: PartialOrd, W: PartialOrd, V: PartialOrd, U: PartialOrd, T> PartialOrd<(X, W, V, U, T)> for (X, W, V, U, T)where
T: ?Sized + PartialOrd,

### impl<X: PartialOrd, W: PartialOrd, V: PartialOrd, U: PartialOrd, T> PartialOrd<(X, W, V, U, T)> for (X, W, V, U, T)where T: ?Sized + PartialOrd,

source§#### fn partial_cmp(&self, other: &(X, W, V, U, T)) -> Option<Ordering>

#### fn partial_cmp(&self, other: &(X, W, V, U, T)) -> Option<Ordering>

source§#### fn lt(&self, other: &(X, W, V, U, T)) -> bool

#### fn lt(&self, other: &(X, W, V, U, T)) -> bool

source§#### fn le(&self, other: &(X, W, V, U, T)) -> bool

#### fn le(&self, other: &(X, W, V, U, T)) -> bool

`self`

and `other`

) and is used by the `<=`

operator. Read moresource§### impl<Y: PartialOrd, X: PartialOrd, W: PartialOrd, V: PartialOrd, U: PartialOrd, T> PartialOrd<(Y, X, W, V, U, T)> for (Y, X, W, V, U, T)where
T: ?Sized + PartialOrd,

### impl<Y: PartialOrd, X: PartialOrd, W: PartialOrd, V: PartialOrd, U: PartialOrd, T> PartialOrd<(Y, X, W, V, U, T)> for (Y, X, W, V, U, T)where T: ?Sized + PartialOrd,

source§#### fn partial_cmp(&self, other: &(Y, X, W, V, U, T)) -> Option<Ordering>

#### fn partial_cmp(&self, other: &(Y, X, W, V, U, T)) -> Option<Ordering>

source§#### fn lt(&self, other: &(Y, X, W, V, U, T)) -> bool

#### fn lt(&self, other: &(Y, X, W, V, U, T)) -> bool

source§#### fn le(&self, other: &(Y, X, W, V, U, T)) -> bool

#### fn le(&self, other: &(Y, X, W, V, U, T)) -> bool

`self`

and `other`

) and is used by the `<=`

operator. Read moresource§### impl<Z: PartialOrd, Y: PartialOrd, X: PartialOrd, W: PartialOrd, V: PartialOrd, U: PartialOrd, T> PartialOrd<(Z, Y, X, W, V, U, T)> for (Z, Y, X, W, V, U, T)where
T: ?Sized + PartialOrd,

### impl<Z: PartialOrd, Y: PartialOrd, X: PartialOrd, W: PartialOrd, V: PartialOrd, U: PartialOrd, T> PartialOrd<(Z, Y, X, W, V, U, T)> for (Z, Y, X, W, V, U, T)where T: ?Sized + PartialOrd,

source§#### fn partial_cmp(&self, other: &(Z, Y, X, W, V, U, T)) -> Option<Ordering>

#### fn partial_cmp(&self, other: &(Z, Y, X, W, V, U, T)) -> Option<Ordering>

source§#### fn lt(&self, other: &(Z, Y, X, W, V, U, T)) -> bool

#### fn lt(&self, other: &(Z, Y, X, W, V, U, T)) -> bool

source§#### fn le(&self, other: &(Z, Y, X, W, V, U, T)) -> bool

#### fn le(&self, other: &(Z, Y, X, W, V, U, T)) -> bool

`self`

and `other`

) and is used by the `<=`

operator. Read more1.28.0 · source§### impl<T> RangeBounds<T> for (Bound<T>, Bound<T>)

### impl<T> RangeBounds<T> for (Bound<T>, Bound<T>)

1.53.0 · source§### impl<T> SliceIndex<[T]> for (Bound<usize>, Bound<usize>)

### impl<T> SliceIndex<[T]> for (Bound<usize>, Bound<usize>)

source§#### fn get(self, slice: &[T]) -> Option<&Self::Output>

#### fn get(self, slice: &[T]) -> Option<&Self::Output>

`slice_index_methods`

)source§#### fn get_mut(self, slice: &mut [T]) -> Option<&mut Self::Output>

#### fn get_mut(self, slice: &mut [T]) -> Option<&mut Self::Output>

`slice_index_methods`

)source§#### unsafe fn get_unchecked(self, slice: *const [T]) -> *const Self::Output

#### unsafe fn get_unchecked(self, slice: *const [T]) -> *const Self::Output

`slice_index_methods`

)`slice`

pointer
is *undefined behavior*even if the resulting reference is not used.

source§#### unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut Self::Output

#### unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut Self::Output

`slice_index_methods`

)`slice`

pointer
is *undefined behavior*even if the resulting reference is not used.

### impl<A: ConstParamTy, Z: ConstParamTy, Y: ConstParamTy, X: ConstParamTy, W: ConstParamTy, V: ConstParamTy, U: ConstParamTy, T: ConstParamTy> ConstParamTy for (A, Z, Y, X, W, V, U, T)

### impl<B: ConstParamTy, A: ConstParamTy, Z: ConstParamTy, Y: ConstParamTy, X: ConstParamTy, W: ConstParamTy, V: ConstParamTy, U: ConstParamTy, T: ConstParamTy> ConstParamTy for (B, A, Z, Y, X, W, V, U, T)

### impl<C: ConstParamTy, B: ConstParamTy, A: ConstParamTy, Z: ConstParamTy, Y: ConstParamTy, X: ConstParamTy, W: ConstParamTy, V: ConstParamTy, U: ConstParamTy, T: ConstParamTy> ConstParamTy for (C, B, A, Z, Y, X, W, V, U, T)

### impl<D: ConstParamTy, C: ConstParamTy, B: ConstParamTy, A: ConstParamTy, Z: ConstParamTy, Y: ConstParamTy, X: ConstParamTy, W: ConstParamTy, V: ConstParamTy, U: ConstParamTy, T: ConstParamTy> ConstParamTy for (D, C, B, A, Z, Y, X, W, V, U, T)

### impl<E: ConstParamTy, D: ConstParamTy, C: ConstParamTy, B: ConstParamTy, A: ConstParamTy, Z: ConstParamTy, Y: ConstParamTy, X: ConstParamTy, W: ConstParamTy, V: ConstParamTy, U: ConstParamTy, T: ConstParamTy> ConstParamTy for (E, D, C, B, A, Z, Y, X, W, V, U, T)

### impl<T: ConstParamTy> ConstParamTy for (T₁, T₂, …, Tₙ)

This trait is implemented for tuples up to twelve items long.

### impl<U: ConstParamTy, T: ConstParamTy> ConstParamTy for (U, T)

### impl<V: ConstParamTy, U: ConstParamTy, T: ConstParamTy> ConstParamTy for (V, U, T)

### impl<W: ConstParamTy, V: ConstParamTy, U: ConstParamTy, T: ConstParamTy> ConstParamTy for (W, V, U, T)

### impl<X: ConstParamTy, W: ConstParamTy, V: ConstParamTy, U: ConstParamTy, T: ConstParamTy> ConstParamTy for (X, W, V, U, T)

### impl<Y: ConstParamTy, X: ConstParamTy, W: ConstParamTy, V: ConstParamTy, U: ConstParamTy, T: ConstParamTy> ConstParamTy for (Y, X, W, V, U, T)

### impl<Z: ConstParamTy, Y: ConstParamTy, X: ConstParamTy, W: ConstParamTy, V: ConstParamTy, U: ConstParamTy, T: ConstParamTy> ConstParamTy for (Z, Y, X, W, V, U, T)

### impl<T: Copy> Copy for (T₁, T₂, …, Tₙ)

This trait is implemented on arbitrary-length tuples.

### impl Sealed for (Bound<usize>, Bound<usize>)

### impl<A, Z, Y, X, W, V, U, T> StructuralEq for (A, Z, Y, X, W, V, U, T)

### impl<B, A, Z, Y, X, W, V, U, T> StructuralEq for (B, A, Z, Y, X, W, V, U, T)

### impl<C, B, A, Z, Y, X, W, V, U, T> StructuralEq for (C, B, A, Z, Y, X, W, V, U, T)

### impl<D, C, B, A, Z, Y, X, W, V, U, T> StructuralEq for (D, C, B, A, Z, Y, X, W, V, U, T)

### impl<E, D, C, B, A, Z, Y, X, W, V, U, T> StructuralEq for (E, D, C, B, A, Z, Y, X, W, V, U, T)

### impl<T> StructuralEq for (T₁, T₂, …, Tₙ)

This trait is implemented for tuples up to twelve items long.

### impl<U, T> StructuralEq for (U, T)

### impl<V, U, T> StructuralEq for (V, U, T)

### impl<W, V, U, T> StructuralEq for (W, V, U, T)

### impl<X, W, V, U, T> StructuralEq for (X, W, V, U, T)

### impl<Y, X, W, V, U, T> StructuralEq for (Y, X, W, V, U, T)

### impl<Z, Y, X, W, V, U, T> StructuralEq for (Z, Y, X, W, V, U, T)

### impl<A, Z, Y, X, W, V, U, T> StructuralPartialEq for (A, Z, Y, X, W, V, U, T)

### impl<B, A, Z, Y, X, W, V, U, T> StructuralPartialEq for (B, A, Z, Y, X, W, V, U, T)

### impl<C, B, A, Z, Y, X, W, V, U, T> StructuralPartialEq for (C, B, A, Z, Y, X, W, V, U, T)

### impl<D, C, B, A, Z, Y, X, W, V, U, T> StructuralPartialEq for (D, C, B, A, Z, Y, X, W, V, U, T)

### impl<E, D, C, B, A, Z, Y, X, W, V, U, T> StructuralPartialEq for (E, D, C, B, A, Z, Y, X, W, V, U, T)

### impl<T> StructuralPartialEq for (T₁, T₂, …, Tₙ)

This trait is implemented for tuples up to twelve items long.