pub trait PartialOrdLogic {
// Required methods
fn lt_log(self, other: Self) -> bool;
fn irreflexive(self);
fn transitive(x: Self, y: Self, z: Self);
fn le_lt_log(self, other: Self);
// Provided methods
fn gt_log(self, other: Self) -> bool { ... }
fn le_log(self, other: Self) -> bool { ... }
fn ge_log(self, other: Self) -> bool { ... }
fn partial_cmp_log(self, other: Self) -> Option<Ordering> { ... }
}Expand description
Trait for comparison operations (<, >, <=, >=) in Pearlite.
Types that implement this trait must satisfy some properties (see PartialOrd trait in Rust).
In particular, the order must be:
Required Methods§
Sourcefn irreflexive(self)
fn irreflexive(self)
logic(law) ⚠
ensures
!(self < self)Sourcefn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic(law) ⚠
requires
x < yrequires
y < zensures
x < zProvided Methods§
Sourcefn gt_log(self, other: Self) -> bool
fn gt_log(self, other: Self) -> bool
The logical > operation.
logic(open, sealed, inline)
other < selfSourcefn le_log(self, other: Self) -> bool
fn le_log(self, other: Self) -> bool
The logical <= operation.
logic(open, inline)
self < other || self == otherSourcefn ge_log(self, other: Self) -> bool
fn ge_log(self, other: Self) -> bool
The logical >= operation.
logic(open, sealed, inline)
other <= selfSourcefn partial_cmp_log(self, other: Self) -> Option<Ordering>
fn partial_cmp_log(self, other: Self) -> Option<Ordering>
logic(open, sealed)
/* Macro-generated */Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl PartialOrdLogic for bool
impl PartialOrdLogic for bool
Source§fn irreflexive(self)
fn irreflexive(self)
logic ⚠
ensures
!(self < self)Source§fn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic ⚠
requires
x < yrequires
y < zensures
x < zSource§impl PartialOrdLogic for char
impl PartialOrdLogic for char
Source§fn irreflexive(self)
fn irreflexive(self)
logic ⚠
ensures
!(self < self)Source§fn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic ⚠
requires
x < yrequires
y < zensures
x < zSource§impl PartialOrdLogic for f32
impl PartialOrdLogic for f32
Source§fn lt_log(self, _: Self) -> bool
fn lt_log(self, _: Self) -> bool
Note: the implementation of f32::le_log is not the <= operator in Rust,
because it is reflexive.
logic ⚠
Source§fn irreflexive(self)
fn irreflexive(self)
logic ⚠
ensures
!(self < self)Source§fn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic ⚠
requires
x < yrequires
y < zensures
x < zSource§impl PartialOrdLogic for f64
impl PartialOrdLogic for f64
Source§fn lt_log(self, _: Self) -> bool
fn lt_log(self, _: Self) -> bool
Note: the implementation of f64::le_log is not the <= operator in Rust,
because it is reflexive.
logic ⚠
Source§fn irreflexive(self)
fn irreflexive(self)
logic ⚠
ensures
!(self < self)Source§fn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic ⚠
requires
x < yrequires
y < zensures
x < zSource§impl PartialOrdLogic for i8
impl PartialOrdLogic for i8
Source§fn irreflexive(self)
fn irreflexive(self)
logic ⚠
ensures
!(self < self)Source§fn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic ⚠
requires
x < yrequires
y < zensures
x < zSource§impl PartialOrdLogic for i16
impl PartialOrdLogic for i16
Source§fn irreflexive(self)
fn irreflexive(self)
logic ⚠
ensures
!(self < self)Source§fn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic ⚠
requires
x < yrequires
y < zensures
x < zSource§impl PartialOrdLogic for i32
impl PartialOrdLogic for i32
Source§fn irreflexive(self)
fn irreflexive(self)
logic ⚠
ensures
!(self < self)Source§fn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic ⚠
requires
x < yrequires
y < zensures
x < zSource§impl PartialOrdLogic for i64
impl PartialOrdLogic for i64
Source§fn irreflexive(self)
fn irreflexive(self)
logic ⚠
ensures
!(self < self)Source§fn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic ⚠
requires
x < yrequires
y < zensures
x < zSource§impl PartialOrdLogic for i128
impl PartialOrdLogic for i128
Source§fn irreflexive(self)
fn irreflexive(self)
logic ⚠
ensures
!(self < self)Source§fn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic ⚠
requires
x < yrequires
y < zensures
x < zSource§impl PartialOrdLogic for isize
impl PartialOrdLogic for isize
Source§fn irreflexive(self)
fn irreflexive(self)
logic ⚠
ensures
!(self < self)Source§fn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic ⚠
requires
x < yrequires
y < zensures
x < zSource§impl PartialOrdLogic for u8
impl PartialOrdLogic for u8
Source§fn irreflexive(self)
fn irreflexive(self)
logic ⚠
ensures
!(self < self)Source§fn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic ⚠
requires
x < yrequires
y < zensures
x < zSource§impl PartialOrdLogic for u16
impl PartialOrdLogic for u16
Source§fn irreflexive(self)
fn irreflexive(self)
logic ⚠
ensures
!(self < self)Source§fn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic ⚠
requires
x < yrequires
y < zensures
x < zSource§impl PartialOrdLogic for u32
impl PartialOrdLogic for u32
Source§fn irreflexive(self)
fn irreflexive(self)
logic ⚠
ensures
!(self < self)Source§fn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic ⚠
requires
x < yrequires
y < zensures
x < zSource§impl PartialOrdLogic for u64
impl PartialOrdLogic for u64
Source§fn irreflexive(self)
fn irreflexive(self)
logic ⚠
ensures
!(self < self)Source§fn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic ⚠
requires
x < yrequires
y < zensures
x < zSource§impl PartialOrdLogic for u128
impl PartialOrdLogic for u128
Source§fn irreflexive(self)
fn irreflexive(self)
logic ⚠
ensures
!(self < self)Source§fn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic ⚠
requires
x < yrequires
y < zensures
x < zSource§impl PartialOrdLogic for usize
impl PartialOrdLogic for usize
Source§fn irreflexive(self)
fn irreflexive(self)
logic ⚠
ensures
!(self < self)Source§fn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic ⚠
requires
x < yrequires
y < zensures
x < zSource§impl<A: PartialOrdLogic, B: PartialOrdLogic> PartialOrdLogic for (A, B)
impl<A: PartialOrdLogic, B: PartialOrdLogic> PartialOrdLogic for (A, B)
Source§fn irreflexive(self)
fn irreflexive(self)
logic(law) ⚠
ensures
!(self < self)Source§fn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic(law) ⚠
requires
x < yrequires
y < zensures
x < zSource§impl<T: PartialOrdLogic> PartialOrdLogic for &T
impl<T: PartialOrdLogic> PartialOrdLogic for &T
Source§fn irreflexive(self)
fn irreflexive(self)
logic(law) ⚠
ensures
!(self < self)Source§fn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic(law) ⚠
requires
x < yrequires
y < zensures
x < zSource§impl<T: PartialOrdLogic> PartialOrdLogic for Option<T>
impl<T: PartialOrdLogic> PartialOrdLogic for Option<T>
Source§fn irreflexive(self)
fn irreflexive(self)
logic(law) ⚠
ensures
!(self < self)Source§fn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic(law) ⚠
requires
x < yrequires
y < zensures
x < zSource§impl<T: PartialOrdLogic> PartialOrdLogic for Reverse<T>
impl<T: PartialOrdLogic> PartialOrdLogic for Reverse<T>
Source§fn irreflexive(self)
fn irreflexive(self)
logic(law) ⚠
ensures
!(self < self)Source§fn transitive(x: Self, y: Self, z: Self)
fn transitive(x: Self, y: Self, z: Self)
logic(law) ⚠
requires
x < yrequires
y < zensures
x < z