pub trait Default: Default {
// Required method
fn is_default(self) -> bool;
}
Expand description
Extension of the standard Default
trait.
This allows Creusot to specify the behavior of default
.
§Derive macro
Similarly to std
, Creusot defines a derive macro for Default
:
use creusot_contracts::Default;
#[derive(Default)]
struct S(i32);
This will implement both Default
traits, and generate a proof obligation to show
that they agree.
Required Methods§
Sourcefn is_default(self) -> bool
fn is_default(self) -> bool
logic(prophetic)
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.
Implementations on Foreign Types§
Source§impl<A: Default> Default for (A,)
impl<A: Default> Default for (A,)
Source§fn is_default(self) -> bool
fn is_default(self) -> bool
logic(prophetic)
pearlite! { $(self.$idx.is_default())&&+ }
Source§impl<A: Default, B: Default> Default for (A, B)
impl<A: Default, B: Default> Default for (A, B)
Source§fn is_default(self) -> bool
fn is_default(self) -> bool
logic(prophetic)
pearlite! { $(self.$idx.is_default())&&+ }
Source§impl<A: Default, B: Default, C: Default> Default for (A, B, C)
impl<A: Default, B: Default, C: Default> Default for (A, B, C)
Source§fn is_default(self) -> bool
fn is_default(self) -> bool
logic(prophetic)
pearlite! { $(self.$idx.is_default())&&+ }
Source§impl<A: Default, B: Default, C: Default, D: Default> Default for (A, B, C, D)
impl<A: Default, B: Default, C: Default, D: Default> Default for (A, B, C, D)
Source§fn is_default(self) -> bool
fn is_default(self) -> bool
logic(prophetic)
pearlite! { $(self.$idx.is_default())&&+ }
Source§impl<A: Default, B: Default, C: Default, D: Default, E: Default> Default for (A, B, C, D, E)
impl<A: Default, B: Default, C: Default, D: Default, E: Default> Default for (A, B, C, D, E)
Source§fn is_default(self) -> bool
fn is_default(self) -> bool
logic(prophetic)
pearlite! { $(self.$idx.is_default())&&+ }
Source§impl<A: Default, B: Default, C: Default, D: Default, E: Default, F: Default> Default for (A, B, C, D, E, F)
impl<A: Default, B: Default, C: Default, D: Default, E: Default, F: Default> Default for (A, B, C, D, E, F)
Source§fn is_default(self) -> bool
fn is_default(self) -> bool
logic(prophetic)
pearlite! { $(self.$idx.is_default())&&+ }
Source§impl<A: Default, B: Default, C: Default, D: Default, E: Default, F: Default, G: Default> Default for (A, B, C, D, E, F, G)
impl<A: Default, B: Default, C: Default, D: Default, E: Default, F: Default, G: Default> Default for (A, B, C, D, E, F, G)
Source§fn is_default(self) -> bool
fn is_default(self) -> bool
logic(prophetic)
pearlite! { $(self.$idx.is_default())&&+ }
Source§impl<A: Default, B: Default, C: Default, D: Default, E: Default, F: Default, G: Default, H: Default> Default for (A, B, C, D, E, F, G, H)
impl<A: Default, B: Default, C: Default, D: Default, E: Default, F: Default, G: Default, H: Default> Default for (A, B, C, D, E, F, G, H)
Source§fn is_default(self) -> bool
fn is_default(self) -> bool
logic(prophetic)
pearlite! { $(self.$idx.is_default())&&+ }
Source§impl<A: Default, B: Default, C: Default, D: Default, E: Default, F: Default, G: Default, H: Default, I: Default> Default for (A, B, C, D, E, F, G, H, I)
impl<A: Default, B: Default, C: Default, D: Default, E: Default, F: Default, G: Default, H: Default, I: Default> Default for (A, B, C, D, E, F, G, H, I)
Source§fn is_default(self) -> bool
fn is_default(self) -> bool
logic(prophetic)
pearlite! { $(self.$idx.is_default())&&+ }
Source§impl<A: Default, B: Default, C: Default, D: Default, E: Default, F: Default, G: Default, H: Default, I: Default, J: Default> Default for (A, B, C, D, E, F, G, H, I, J)
impl<A: Default, B: Default, C: Default, D: Default, E: Default, F: Default, G: Default, H: Default, I: Default, J: Default> Default for (A, B, C, D, E, F, G, H, I, J)
Source§fn is_default(self) -> bool
fn is_default(self) -> bool
logic(prophetic)
pearlite! { $(self.$idx.is_default())&&+ }
Source§impl<A: Default, B: Default, C: Default, D: Default, E: Default, F: Default, G: Default, H: Default, I: Default, J: Default, K: Default> Default for (A, B, C, D, E, F, G, H, I, J, K)
impl<A: Default, B: Default, C: Default, D: Default, E: Default, F: Default, G: Default, H: Default, I: Default, J: Default, K: Default> Default for (A, B, C, D, E, F, G, H, I, J, K)
Source§fn is_default(self) -> bool
fn is_default(self) -> bool
logic(prophetic)
pearlite! { $(self.$idx.is_default())&&+ }
Source§impl<A: Default, B: Default, C: Default, D: Default, E: Default, F: Default, G: Default, H: Default, I: Default, J: Default, K: Default, L: Default> Default for (A, B, C, D, E, F, G, H, I, J, K, L)
impl<A: Default, B: Default, C: Default, D: Default, E: Default, F: Default, G: Default, H: Default, I: Default, J: Default, K: Default, L: Default> Default for (A, B, C, D, E, F, G, H, I, J, K, L)
Source§fn is_default(self) -> bool
fn is_default(self) -> bool
logic(prophetic)
pearlite! { $(self.$idx.is_default())&&+ }
Source§impl<T> Default for &[T]
impl<T> Default for &[T]
Source§fn is_default(self) -> bool
fn is_default(self) -> bool
logic
pearlite! { self@ == Seq::EMPTY }
Source§impl<T> Default for &mut [T]
impl<T> Default for &mut [T]
Source§fn is_default(self) -> bool
fn is_default(self) -> bool
logic(prophetic)
pearlite! { self@ == Seq::EMPTY && (^self)@ == Seq::EMPTY }