Module std::tuple
Tuples. The type (A, B) is [Tuple2<A, B>], up to (A, B, C, D, E, F), Tuple6: the
surface writes (a, b) for a literal, t.0 for a field and (x, y) for a pattern, and
every program loads this module, so none of those needs a use. A tuple is copy,
forget or linear as its components are, and compares, orders and hashes field by field
where its components do (std::cmp's derives), clones where they clone (std::clone), and
std::string prints it as (a, b).
Source: std/tuple.weir; committed interface: std/tuple.iface. Index
- struct
Tuple2: Two values: the type(A, B), fieldst.0andt.1. - struct
Tuple3: Three values: the type(A, B, C). - struct
Tuple4: Four values: the type(A, B, C, D). - struct
Tuple5: Five values: the type(A, B, C, D, E). - struct
Tuple6: Six values: the type(A, B, C, D, E, F).
struct Tuple2
pub struct Tuple2<A: linear, B: linear>: forget copy {
pub _0: A,
pub _1: B,
}
Two values: the type (A, B), fields t.0 and t.1.
Fields:
Implementations:
impl<A: Eq, B: Eq> Eq for Tuple2<A, B> = DeriveEq;impl<A: Ord, B: Ord> Ord for Tuple2<A, B> = DeriveOrd;impl<A: Hash, B: Hash> Hash for Tuple2<A, B> = DeriveHash;impl<A: Clone + forget, B: Clone + forget> Clone for Tuple2<A, B> = DeriveClone;
struct Tuple3
pub struct Tuple3<A: linear, B: linear, C: linear>: forget copy {
pub _0: A,
pub _1: B,
pub _2: C,
}
Three values: the type (A, B, C).
Fields:
Implementations:
impl<A: Eq, B: Eq, C: Eq> Eq for Tuple3<A, B, C> = DeriveEq;impl<A: Ord, B: Ord, C: Ord> Ord for Tuple3<A, B, C> = DeriveOrd;impl<A: Hash, B: Hash, C: Hash> Hash for Tuple3<A, B, C> = DeriveHash;impl<A: Clone + forget, B: Clone + forget, C: Clone + forget> Clone for Tuple3<A, B, C> = DeriveClone;
struct Tuple4
pub struct Tuple4<A: linear, B: linear, C: linear, D: linear>: forget copy {
pub _0: A,
pub _1: B,
pub _2: C,
pub _3: D,
}
Four values: the type (A, B, C, D).
Fields:
Implementations:
impl<A: Eq, B: Eq, C: Eq, D: Eq> Eq for Tuple4<A, B, C, D> = DeriveEq;impl<A: Ord, B: Ord, C: Ord, D: Ord> Ord for Tuple4<A, B, C, D> = DeriveOrd;impl<A: Hash, B: Hash, C: Hash, D: Hash> Hash for Tuple4<A, B, C, D> = DeriveHash;impl<A: Clone + forget, B: Clone + forget, C: Clone + forget, D: Clone + forget> Clone for Tuple4<A, B, C, D> = DeriveClone;
struct Tuple5
pub struct Tuple5<A: linear, B: linear, C: linear, D: linear, E: linear>: forget copy {
pub _0: A,
pub _1: B,
pub _2: C,
pub _3: D,
pub _4: E,
}
Five values: the type (A, B, C, D, E).
Fields:
Implementations:
impl<A: Eq, B: Eq, C: Eq, D: Eq, E: Eq> Eq for Tuple5<A, B, C, D, E> = DeriveEq;impl<A: Ord, B: Ord, C: Ord, D: Ord, E: Ord> Ord for Tuple5<A, B, C, D, E> = DeriveOrd;impl<A: Hash, B: Hash, C: Hash, D: Hash, E: Hash> Hash for Tuple5<A, B, C, D, E> = DeriveHash;impl<A: Clone + forget, B: Clone + forget, C: Clone + forget, D: Clone + forget, E: Clone + forget> Clone for Tuple5<A, B, C, D, E> = DeriveClone;
struct Tuple6
pub struct Tuple6<A: linear, B: linear, C: linear, D: linear, E: linear, F: linear>: forget copy {
pub _0: A,
pub _1: B,
pub _2: C,
pub _3: D,
pub _4: E,
pub _5: F,
}
Six values: the type (A, B, C, D, E, F).
Fields:
Implementations:
impl<A: Eq, B: Eq, C: Eq, D: Eq, E: Eq, F: Eq> Eq for Tuple6<A, B, C, D, E, F> = DeriveEq;impl<A: Ord, B: Ord, C: Ord, D: Ord, E: Ord, F: Ord> Ord for Tuple6<A, B, C, D, E, F> = DeriveOrd;impl<A: Hash, B: Hash, C: Hash, D: Hash, E: Hash, F: Hash> Hash for Tuple6<A, B, C, D, E, F> = DeriveHash;impl<A: Clone + forget, B: Clone + forget, C: Clone + forget, D: Clone + forget, E: Clone + forget, F: Clone + forget> Clone for Tuple6<A, B, C, D, E, F> = DeriveClone;