additional_bounds: Vec::new(),
generics: LifetimeBounds::empty(),
is_unsafe: false,
+ supports_unions: true,
methods: Vec::new(),
associated_types: Vec::new(),
};
additional_bounds: bounds,
generics: LifetimeBounds::empty(),
is_unsafe: false,
+ supports_unions: false,
methods: vec![MethodDef {
name: "clone",
generics: LifetimeBounds::empty(),
additional_bounds: Vec::new(),
generics: LifetimeBounds::empty(),
is_unsafe: false,
+ supports_unions: false,
methods: vec![MethodDef {
name: "assert_receiver_is_total_eq",
generics: LifetimeBounds::empty(),
additional_bounds: Vec::new(),
generics: LifetimeBounds::empty(),
is_unsafe: false,
+ supports_unions: false,
methods: vec![MethodDef {
name: "cmp",
generics: LifetimeBounds::empty(),
additional_bounds: Vec::new(),
generics: LifetimeBounds::empty(),
is_unsafe: false,
+ supports_unions: false,
methods: methods,
associated_types: Vec::new(),
};
additional_bounds: vec![],
generics: LifetimeBounds::empty(),
is_unsafe: false,
+ supports_unions: false,
methods: methods,
associated_types: Vec::new(),
};
additional_bounds: Vec::new(),
generics: LifetimeBounds::empty(),
is_unsafe: false,
+ supports_unions: false,
methods: vec![MethodDef {
name: "fmt",
generics: LifetimeBounds::empty(),
additional_bounds: Vec::new(),
generics: LifetimeBounds::empty(),
is_unsafe: false,
+ supports_unions: false,
methods: vec![MethodDef {
name: "decode",
generics: LifetimeBounds {
additional_bounds: Vec::new(),
generics: LifetimeBounds::empty(),
is_unsafe: false,
+ supports_unions: false,
methods: vec![MethodDef {
name: "default",
generics: LifetimeBounds::empty(),
additional_bounds: Vec::new(),
generics: LifetimeBounds::empty(),
is_unsafe: false,
+ supports_unions: false,
methods: vec!(
MethodDef {
name: "encode",
/// Is it an `unsafe` trait?
pub is_unsafe: bool,
+ /// Can this trait be derived for unions?
+ pub supports_unions: bool,
+
pub methods: Vec<MethodDef<'a>>,
pub associated_types: Vec<(ast::Ident, Ty<'a>)>,
additional_bounds: Vec::new(),
generics: LifetimeBounds::empty(),
is_unsafe: false,
+ supports_unions: false,
methods: vec![MethodDef {
name: "hash",
generics: LifetimeBounds {
generics: LifetimeBounds::empty(),
associated_types: vec![],
is_unsafe: false,
+ supports_unions: false,
methods: vec![
MethodDef {
name: "total_sum",
generics: LifetimeBounds::empty(),
associated_types: vec![],
is_unsafe: false,
+ supports_unions: false,
methods: vec![
MethodDef {
name: "total_sum",