понять правильно я делаю, чтобы пофиксить.
раньше было:
#[derive(Debug, Clone)]
struct ValidEmailFixture(pub String);
impl quickcheck::Arbitrary for ValidEmailFixture {
fn arbitrary<G: quickcheck::Gen>(g: &mut G) -> Self {
let email = SafeEmail().fake_with_rng(g);
Self(email)
}
}
теперь я делаю так
#[derive(Debug, Clone)]
struct ValidEmailFixture(pub String);
impl quickcheck::Arbitrary for ValidEmailFixture {
fn arbitrary(_g: &mut quickcheck::Gen) -> Self {
let email: String = SafeEmail().fake();
Self(email)
}
}
но вроде же и раньше можно было сделать
impl quickcheck::Arbitrary for ValidEmailFixture {
fn arbitrary<G: quickcheck::Gen>(_g: &mut G) -> Self {
let email: String = SafeEmail().fake();
Self(email)
}
}
вопрос, зачем было использовать один и тот же g для фэйкера и сейчас? чтобы при ошибке шринкалось правильно из за того что сиид использовался один и тот же или я чет не догоняю?
работать должно, только зачем тогда входной аргумент?
Обсуждают сегодня