Skip to main content

PartialOrdLogic

Trait PartialOrdLogic 

Source
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§

Source

fn lt_log(self, other: Self) -> bool

The logical < operation.

logic

Source

fn irreflexive(self)

logic(law)

ensures

!(self < self)

Source

fn transitive(x: Self, y: Self, z: Self)

logic(law)

requires

x < y

requires

y < z

ensures

x < z

Source

fn le_lt_log(self, other: Self)

logic(law)

ensures

(self <= other) == (self < other || self == other)

Provided Methods§

Source

fn gt_log(self, other: Self) -> bool

The logical > operation.

logic(open, sealed, inline)

other < self

Source

fn le_log(self, other: Self) -> bool

The logical <= operation.

logic(open, inline)

self < other || self == other

Source

fn ge_log(self, other: Self) -> bool

The logical >= operation.

logic(open, sealed, inline)

other <= self

Source

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

Source§

fn le_log(self, _: Self) -> bool

logic

Source§

fn lt_log(self, _: Self) -> bool

logic

Source§

fn irreflexive(self)

logic

ensures

!(self < self)

Source§

fn transitive(x: Self, y: Self, z: Self)

logic

requires

x < y

requires

y < z

ensures

x < z

Source§

fn le_lt_log(self, other: Self)

logic

ensures

(self <= other) == (self < other || self == other)

Source§

impl PartialOrdLogic for char

Source§

fn le_log(self, _: Self) -> bool

logic

Source§

fn lt_log(self, _: Self) -> bool

logic

Source§

fn irreflexive(self)

logic

ensures

!(self < self)

Source§

fn transitive(x: Self, y: Self, z: Self)

logic

requires

x < y

requires

y < z

ensures

x < z

Source§

fn le_lt_log(self, other: Self)

logic

ensures

(self <= other) == (self < other || self == other)

Source§

impl PartialOrdLogic for f32

Source§

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)

logic

ensures

!(self < self)

Source§

fn transitive(x: Self, y: Self, z: Self)

logic

requires

x < y

requires

y < z

ensures

x < z

Source§

fn le_lt_log(self, other: Self)

logic

ensures

(self <= other) == (self < other || self == other)

Source§

impl PartialOrdLogic for f64

Source§

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)

logic

ensures

!(self < self)

Source§

fn transitive(x: Self, y: Self, z: Self)

logic

requires

x < y

requires

y < z

ensures

x < z

Source§

fn le_lt_log(self, other: Self)

logic

ensures

(self <= other) == (self < other || self == other)

Source§

impl PartialOrdLogic for i8

Source§

fn le_log(self, _: Self) -> bool

logic

Source§

fn lt_log(self, _: Self) -> bool

logic

Source§

fn irreflexive(self)

logic

ensures

!(self < self)

Source§

fn transitive(x: Self, y: Self, z: Self)

logic

requires

x < y

requires

y < z

ensures

x < z

Source§

fn le_lt_log(self, other: Self)

logic

ensures

(self <= other) == (self < other || self == other)

Source§

impl PartialOrdLogic for i16

Source§

fn le_log(self, _: Self) -> bool

logic

Source§

fn lt_log(self, _: Self) -> bool

logic

Source§

fn irreflexive(self)

logic

ensures

!(self < self)

Source§

fn transitive(x: Self, y: Self, z: Self)

logic

requires

x < y

requires

y < z

ensures

x < z

Source§

fn le_lt_log(self, other: Self)

logic

ensures

(self <= other) == (self < other || self == other)

Source§

impl PartialOrdLogic for i32

Source§

fn le_log(self, _: Self) -> bool

logic

Source§

fn lt_log(self, _: Self) -> bool

logic

Source§

fn irreflexive(self)

logic

ensures

!(self < self)

Source§

fn transitive(x: Self, y: Self, z: Self)

logic

requires

x < y

requires

y < z

ensures

x < z

Source§

fn le_lt_log(self, other: Self)

logic

ensures

(self <= other) == (self < other || self == other)

Source§

impl PartialOrdLogic for i64

Source§

fn le_log(self, _: Self) -> bool

logic

Source§

fn lt_log(self, _: Self) -> bool

logic

Source§

fn irreflexive(self)

logic

ensures

!(self < self)

Source§

fn transitive(x: Self, y: Self, z: Self)

logic

requires

x < y

requires

y < z

ensures

x < z

Source§

fn le_lt_log(self, other: Self)

logic

ensures

(self <= other) == (self < other || self == other)

Source§

impl PartialOrdLogic for i128

Source§

fn le_log(self, _: Self) -> bool

logic

Source§

fn lt_log(self, _: Self) -> bool

logic

Source§

fn irreflexive(self)

logic

ensures

!(self < self)

Source§

fn transitive(x: Self, y: Self, z: Self)

logic

requires

x < y

requires

y < z

ensures

x < z

Source§

fn le_lt_log(self, other: Self)

logic

ensures

(self <= other) == (self < other || self == other)

Source§

impl PartialOrdLogic for isize

Source§

fn le_log(self, _: Self) -> bool

logic

Source§

fn lt_log(self, _: Self) -> bool

logic

Source§

fn irreflexive(self)

logic

ensures

!(self < self)

Source§

fn transitive(x: Self, y: Self, z: Self)

logic

requires

x < y

requires

y < z

ensures

x < z

Source§

fn le_lt_log(self, other: Self)

logic

ensures

(self <= other) == (self < other || self == other)

Source§

impl PartialOrdLogic for u8

Source§

fn le_log(self, _: Self) -> bool

logic

Source§

fn lt_log(self, _: Self) -> bool

logic

Source§

fn irreflexive(self)

logic

ensures

!(self < self)

Source§

fn transitive(x: Self, y: Self, z: Self)

logic

requires

x < y

requires

y < z

ensures

x < z

Source§

fn le_lt_log(self, other: Self)

logic

ensures

(self <= other) == (self < other || self == other)

Source§

impl PartialOrdLogic for u16

Source§

fn le_log(self, _: Self) -> bool

logic

Source§

fn lt_log(self, _: Self) -> bool

logic

Source§

fn irreflexive(self)

logic

ensures

!(self < self)

Source§

fn transitive(x: Self, y: Self, z: Self)

logic

requires

x < y

requires

y < z

ensures

x < z

Source§

fn le_lt_log(self, other: Self)

logic

ensures

(self <= other) == (self < other || self == other)

Source§

impl PartialOrdLogic for u32

Source§

fn le_log(self, _: Self) -> bool

logic

Source§

fn lt_log(self, _: Self) -> bool

logic

Source§

fn irreflexive(self)

logic

ensures

!(self < self)

Source§

fn transitive(x: Self, y: Self, z: Self)

logic

requires

x < y

requires

y < z

ensures

x < z

Source§

fn le_lt_log(self, other: Self)

logic

ensures

(self <= other) == (self < other || self == other)

Source§

impl PartialOrdLogic for u64

Source§

fn le_log(self, _: Self) -> bool

logic

Source§

fn lt_log(self, _: Self) -> bool

logic

Source§

fn irreflexive(self)

logic

ensures

!(self < self)

Source§

fn transitive(x: Self, y: Self, z: Self)

logic

requires

x < y

requires

y < z

ensures

x < z

Source§

fn le_lt_log(self, other: Self)

logic

ensures

(self <= other) == (self < other || self == other)

Source§

impl PartialOrdLogic for u128

Source§

fn le_log(self, _: Self) -> bool

logic

Source§

fn lt_log(self, _: Self) -> bool

logic

Source§

fn irreflexive(self)

logic

ensures

!(self < self)

Source§

fn transitive(x: Self, y: Self, z: Self)

logic

requires

x < y

requires

y < z

ensures

x < z

Source§

fn le_lt_log(self, other: Self)

logic

ensures

(self <= other) == (self < other || self == other)

Source§

impl PartialOrdLogic for usize

Source§

fn le_log(self, _: Self) -> bool

logic

Source§

fn lt_log(self, _: Self) -> bool

logic

Source§

fn irreflexive(self)

logic

ensures

!(self < self)

Source§

fn transitive(x: Self, y: Self, z: Self)

logic

requires

x < y

requires

y < z

ensures

x < z

Source§

fn le_lt_log(self, other: Self)

logic

ensures

(self <= other) == (self < other || self == other)

Source§

impl<A: PartialOrdLogic, B: PartialOrdLogic> PartialOrdLogic for (A, B)

Source§

fn lt_log(self, o: Self) -> bool

logic(open)

self.0 == o.0 && self.1 < o.1 || self.0 < o.0

Source§

fn le_log(self, o: Self) -> bool

logic(open)

self.0 == o.0 && self.1 <= o.1 || self.0 < o.0

Source§

fn irreflexive(self)

logic(law)

ensures

!(self < self)

Source§

fn transitive(x: Self, y: Self, z: Self)

logic(law)

requires

x < y

requires

y < z

ensures

x < z

Source§

fn le_lt_log(self, other: Self)

logic(law)

ensures

(self <= other) == (self < other || self == other)

Source§

impl<T: PartialOrdLogic> PartialOrdLogic for &T

Source§

fn lt_log(self, other: Self) -> bool

logic(open, inline)

*self < *other

Source§

fn le_log(self, other: Self) -> bool

logic(open, inline)

*self <= *other

Source§

fn irreflexive(self)

logic(law)

ensures

!(self < self)

Source§

fn transitive(x: Self, y: Self, z: Self)

logic(law)

requires

x < y

requires

y < z

ensures

x < z

Source§

fn le_lt_log(self, other: Self)

logic(law)

ensures

(self <= other) == (self < other || self == other)

Source§

impl<T: PartialOrdLogic> PartialOrdLogic for Option<T>

Source§

fn lt_log(self, o: Self) -> bool

logic(open)

/* Macro-generated */

Source§

fn le_log(self, o: Self) -> bool

logic(open)

/* Macro-generated */

Source§

fn irreflexive(self)

logic(law)

ensures

!(self < self)

Source§

fn transitive(x: Self, y: Self, z: Self)

logic(law)

requires

x < y

requires

y < z

ensures

x < z

Source§

fn le_lt_log(self, other: Self)

logic(law)

ensures

(self <= other) == (self < other || self == other)

Source§

impl<T: PartialOrdLogic> PartialOrdLogic for Reverse<T>

Source§

fn lt_log(self, o: Self) -> bool

logic(open, inline)

o.0 < self.0

Source§

fn le_log(self, o: Self) -> bool

logic(open, inline)

o.0 <= self.0

Source§

fn irreflexive(self)

logic(law)

ensures

!(self < self)

Source§

fn transitive(x: Self, y: Self, z: Self)

logic(law)

requires

x < y

requires

y < z

ensures

x < z

Source§

fn le_lt_log(self, other: Self)

logic(law)

ensures

(self <= other) == (self < other || self == other)

Implementors§