Skip to main content

FailurePersistence

Trait FailurePersistence 

pub trait FailurePersistence:
    Send
    + Sync
    + Debug {
    // Required methods
    fn box_clone(&self) -> Box<dyn FailurePersistence>;
    fn eq(&self, other: &dyn FailurePersistence) -> bool;
    fn as_any(&self) -> &(dyn Any + 'static);

    // Provided methods
    fn load_persisted_failures2(
        &self,
        source_file: Option<&'static str>,
    ) -> Vec<PersistedSeed> { ... }
    fn load_persisted_failures(
        &self,
        source_file: Option<&'static str>,
    ) -> Vec<[u8; 16]> { ... }
    fn save_persisted_failure2(
        &mut self,
        source_file: Option<&'static str>,
        seed: PersistedSeed,
        shrunken_value: &dyn Debug,
    ) { ... }
    fn save_persisted_failure(
        &mut self,
        source_file: Option<&'static str>,
        seed: [u8; 16],
        shrunken_value: &dyn Debug,
    ) { ... }
}
Expand description

Provides external persistence for historical test failures by storing seeds.

Note: Implementing load_persisted_failures and save_persisted_failures is deprecated and these methods will be removed in proptest 0.10.0. Instead, implement load_persisted_failures2 and save_persisted_failures2.

Required Methods§

fn box_clone(&self) -> Box<dyn FailurePersistence>

Delegate method for producing a trait object usable with Clone

fn eq(&self, other: &dyn FailurePersistence) -> bool

Equality testing delegate required due to constraints of trait objects.

fn as_any(&self) -> &(dyn Any + 'static)

Assistant method for trait object comparison.

Provided Methods§

fn load_persisted_failures2( &self, source_file: Option<&'static str>, ) -> Vec<PersistedSeed>

Supply seeds associated with the given source_file that may be used by a TestRunner’s random number generator in order to consistently recreate a previously-failing Strategy-provided value.

The default implementation is for backwards compatibility. It delegates to load_persisted_failures and converts the results into XorShift seeds.

fn load_persisted_failures( &self, source_file: Option<&'static str>, ) -> Vec<[u8; 16]>

👎Deprecated

Use load_persisted_failures2 instead.

This function inadvertently exposes the implementation of seeds prior to Proptest 0.9.1 and only works with XorShift seeds.

fn save_persisted_failure2( &mut self, source_file: Option<&'static str>, seed: PersistedSeed, shrunken_value: &dyn Debug, )

Store a new failure-generating seed associated with the given source_file.

The default implementation is for backwards compatibility. It delegates to save_persisted_failure if seed is a XorShift seed.

fn save_persisted_failure( &mut self, source_file: Option<&'static str>, seed: [u8; 16], shrunken_value: &dyn Debug, )

👎Deprecated

Use save_persisted_failures2 instead.

This function inadvertently exposes the implementation of seeds prior to Proptest 0.9.1 and only works with XorShift seeds.

Trait Implementations§

§

impl Clone for Box<dyn FailurePersistence>

§

fn clone(&self) -> Box<dyn FailurePersistence>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl<'a, 'b> PartialEq<dyn FailurePersistence + 'b> for dyn FailurePersistence + 'a

§

fn eq(&self, other: &(dyn FailurePersistence + 'b)) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§