#![feature(generic_associated_types)]
#![allow(dead_code)]
use autoproto::prost::Message;
use std::collections::{BTreeSet, HashSet};
use quickcheck::TestResult;
use quickcheck_macros::quickcheck;
#[derive(Copy, Clone, PartialEq, Default, Debug, autoproto::Message)]
struct Unit;
#[derive(Hash, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Default, Debug, autoproto::Message)]
struct Foo(#[autoproto(tag = 4)] A, #[autoproto(tag = 5)] B);
#[derive(Copy, Clone, PartialEq, Default, Debug, autoproto::Message)]
struct SomeStruct {
a: A,
b: B,
}
#[derive(Copy, Clone, PartialEq, Default, Debug, autoproto::Message)]
#[autoproto(transparent)]
struct Wrapper(SomeStruct, SomeStruct>);
#[derive(Default, Debug, autoproto::Message)]
#[autoproto(transparent = true)]
struct WrapperExplicit(SomeStruct, SomeStruct>);
#[derive(Default, Debug, autoproto::Message)]
#[autoproto(transparent = false)]
struct NotWrapperExplicit(SomeStruct, SomeStruct>);
#[derive(Default, Clone, autoproto::ProtoScalar)]
struct ScalarWrapper(T);
#[derive(Debug, PartialEq, Clone, autoproto::ProtoScalar)]
enum SomeEnumeration {
A = 0,
B,
C,
D,
E,
F,
G,
H,
I,
Max,
}
impl Default for SomeEnumeration {
fn default() -> Self {
Self::A
}
}
trait DummyOne {}
trait DummyTwo {}
trait DummyThree {}
#[derive(Copy, Clone, PartialEq, Debug, autoproto::Message)]
enum Oneof {
Nothing,
NothingWithBrackets(),
NothingWithBraces {},
One(A),
OneWithBraces { a: A },
Two(A, B),
TwoWithBraces { a: A, b: B },
Three(A, B, C),
ThreeWithBraces { a: A, b: B, c: C },
}
impl Default for Oneof {
fn default() -> Self {
Self::Nothing
}
}
type WithOptionals = SomeStruct