Make note about traits that can be derived
in their API docs Fixes #29711
This commit is contained in:
parent
57c8a3e8b6
commit
e4a0b48027
@ -24,6 +24,8 @@
|
||||
use marker::Sized;
|
||||
|
||||
/// A common trait for cloning an object.
|
||||
///
|
||||
/// This trait can be used with `#[derive]`.
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub trait Clone : Sized {
|
||||
/// Returns a copy of the value.
|
||||
|
@ -43,6 +43,8 @@ use option::Option::{self, Some};
|
||||
/// in terms of it by default. Any manual implementation of `ne` *must* respect
|
||||
/// the rule that `eq` is a strict inverse of `ne`; that is, `!(a == b)` if and
|
||||
/// only if `a != b`.
|
||||
///
|
||||
/// This trait can be used with `#[derive]`.
|
||||
#[lang = "eq"]
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub trait PartialEq<Rhs: ?Sized = Self> {
|
||||
@ -69,6 +71,8 @@ pub trait PartialEq<Rhs: ?Sized = Self> {
|
||||
///
|
||||
/// This property cannot be checked by the compiler, and therefore `Eq` implies
|
||||
/// `PartialEq`, and has no extra methods.
|
||||
///
|
||||
/// This trait can be used with `#[derive]`.
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub trait Eq: PartialEq<Self> {
|
||||
// FIXME #13101: this method is used solely by #[deriving] to
|
||||
@ -171,6 +175,8 @@ impl Ordering {
|
||||
/// - transitive, `a < b` and `b < c` implies `a < c`. The same must hold for both `==` and `>`.
|
||||
///
|
||||
/// When this trait is `derive`d, it produces a lexicographic ordering.
|
||||
///
|
||||
/// This trait can be used with `#[derive]`.
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub trait Ord: Eq + PartialOrd<Self> {
|
||||
/// This method returns an `Ordering` between `self` and `other`.
|
||||
@ -227,6 +233,8 @@ impl PartialOrd for Ordering {
|
||||
/// However it remains possible to implement the others separately for types which do not have a
|
||||
/// total order. For example, for floating point numbers, `NaN < 0 == false` and `NaN >= 0 ==
|
||||
/// false` (cf. IEEE 754-2008 section 5.11).
|
||||
///
|
||||
/// This trait can be used with `#[derive]`.
|
||||
#[lang = "ord"]
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub trait PartialOrd<Rhs: ?Sized = Self>: PartialEq<Rhs> {
|
||||
|
@ -300,6 +300,8 @@ impl<'a> Display for Arguments<'a> {
|
||||
///
|
||||
/// [module]: ../../std/fmt/index.html
|
||||
///
|
||||
/// This trait can be used with `#[derive]`.
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
/// Deriving an implementation:
|
||||
|
@ -93,6 +93,8 @@ mod sip;
|
||||
///
|
||||
/// In other words, if two keys are equal, their hashes should also be equal.
|
||||
/// `HashMap` and `HashSet` both rely on this behavior.
|
||||
///
|
||||
/// This trait can be used with `#[derive]`.
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
pub trait Hash {
|
||||
/// Feeds this value into the state given, updating the hasher as necessary.
|
||||
|
@ -165,6 +165,10 @@ pub trait Unsize<T: ?Sized> {
|
||||
/// to consider though: if you think your type may _not_ be able to implement `Copy` in the future,
|
||||
/// then it might be prudent to not implement `Copy`. This is because removing `Copy` is a breaking
|
||||
/// change: that second example would fail to compile if we made `Foo` non-`Copy`.
|
||||
///
|
||||
/// # Derivable
|
||||
///
|
||||
/// This trait can be used with `#[derive]`.
|
||||
#[stable(feature = "rust1", since = "1.0.0")]
|
||||
#[lang = "copy"]
|
||||
pub trait Copy : Clone {
|
||||
|
Loading…
Reference in New Issue
Block a user