use proptest::prelude::*;
use proptest::test_runner::{TestError, TestRunner};
use std::fmt;
pub trait StructuredTarget: Send + Sync + fmt::Debug {
type Value: fmt::Debug;
fn name(&self) -> &'static str;
fn description(&self) -> Option<&'static str>;
fn proptest_config(&self) -> ProptestConfig {
ProptestConfig::default()
}
fn execute(&self, test_runner: &mut TestRunner) -> Result<(), TestError<Self::Value>>;
fn fmt_value(&self, value: &Self::Value, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{:?}", value)
}
}