1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
//! Comparison operator traits //! //! C++'s comparison operators have different semantics from Rust's `PartialOrd` and `Ord` traits. //! If all the operators (`Lt`, `Le`, `Gt`, `Ge`) are implemented for a type, the pointer types //! (`CppBox`, `Ptr`, `MutPtr`, `Ref`, `MutRef`) automatically implement `PartialOrd`. /// Represents C++'s `operator<`. pub trait Lt<Rhs: ?Sized = Self> { /// This method tests less than (for `self` and `other`) and is used by the `<` operator. unsafe fn lt(&self, other: &Rhs) -> bool; } /// Represents C++'s `operator<=`. pub trait Le<Rhs: ?Sized = Self> { /// This method tests less than or equal to (for `self` and `other`) and is used by the `<=` unsafe fn le(&self, other: &Rhs) -> bool; } /// Represents C++'s `operator>`. pub trait Gt<Rhs: ?Sized = Self> { /// This method tests greater than (for `self` and `other`) and is used by the `>` operator. unsafe fn gt(&self, other: &Rhs) -> bool; } /// Represents C++'s `operator>=`. pub trait Ge<Rhs: ?Sized = Self> { /// This method tests greater than or equal to (for `self` and `other`) and is used by the `>=` /// operator. unsafe fn ge(&self, other: &Rhs) -> bool; }