Trait creusot_contracts::invariant::Invariant

source ·
pub trait Invariant {
    // Required method
    fn invariant(self) -> bool;
}

Required Methods§

source

fn invariant(self) -> bool

logic(prophetic)

Implementations on Foreign Types§

source§

impl Invariant for !

source§

fn invariant(self) -> bool

logic(prophetic)

false

source§

impl<T> Invariant for [T]

source§

fn invariant(self) -> bool

logic(prophetic)

pearlite! { inv(self@) }

source§

impl<T, const N: usize> Invariant for [T; N]

source§

fn invariant(self) -> bool

logic(prophetic)

pearlite! { inv(self@) }

source§

impl<T: ?Sized> Invariant for &T

source§

fn invariant(self) -> bool

logic(prophetic)

inv(*self)

source§

impl<T: ?Sized> Invariant for &mut T

source§

fn invariant(self) -> bool

logic(prophetic)

pearlite! { inv(*self) && inv(^self) }

Implementors§

source§

impl<I: Iterator> Invariant for Enumerate<I>

source§

impl<I: Iterator, B, F: FnMut(I::Item, Snapshot<Seq<I::Item>>) -> B> Invariant for MapInv<I, I::Item, F>

source§

impl<I: Iterator, F: FnMut(&I::Item) -> bool> Invariant for Filter<I, F>

source§

impl<K, V: ?Sized> Invariant for FMap<K, V>

source§

impl<T, A: Allocator> Invariant for Vec<T, A>

source§

impl<T: ?Sized> Invariant for FSet<T>

source§

impl<T: ?Sized> Invariant for Seq<T>

source§

impl<T: ?Sized> Invariant for PtrOwn<T>

source§

impl<T: ?Sized, A: Allocator> Invariant for Box<T, A>