@@ -916,11 +916,40 @@ mod prim_str {}
916916///
917917/// # Trait implementations
918918///
919- /// In this documentation the shorthand `(T, ...)` is used to represent all
920- /// tuples up to length twelve. When that is used, any trait bounds expressed
921- /// on `T` applies to each field of the tuple independently. Note that this is
922- /// a convenience notation to avoid repetitive documentation, not valid
923- /// Rust syntax.
919+ /// In this documentation the shorthand `(T, ...)` is used to represent tuples of varying length.
920+ /// When that is used, any trait bounds expressed on `T` applies to each field of the tuple
921+ /// independently. Note that this is a convenience notation to avoid repetitive documentation,
922+ /// not valid Rust syntax.
923+ ///
924+ /// Due to a temporary restriction in Rust’s type system, the following traits are only
925+ /// implemented on tuples of arity 12 or less. In the future, this may change:
926+ ///
927+ /// * [`PartialEq`]
928+ /// * [`Eq`]
929+ /// * [`PartialOrd`]
930+ /// * [`Ord`]
931+ /// * [`Debug`]
932+ /// * [`Default`]
933+ /// * [`Hash`]
934+ ///
935+ /// [`Debug`]: fmt::Debug
936+ /// [`Hash`]: hash::Hash
937+ ///
938+ /// The following traits are implemented for tuples of any length. These traits have
939+ /// implementations that are automatically generated by the compiler, so are not limited by
940+ /// missing language features.
941+ ///
942+ /// * [`Clone`]
943+ /// * [`Copy`]
944+ /// * [`Send`]
945+ /// * [`Sync`]
946+ /// * [`Unpin`]
947+ /// * [`UnwindSafe`]
948+ /// * [`RefUnwindSafe`]
949+ ///
950+ /// [`Unpin`]: marker::Unpin
951+ /// [`UnwindSafe`]: panic::UnwindSafe
952+ /// [`RefUnwindSafe`]: panic::RefUnwindSafe
924953///
925954/// # Examples
926955///
0 commit comments