define_field!(('a' as u8 + idx as u8) as char, ('0' as u8 + idx as u8) as char, field);
}
}
- _ => unimplemented!()
+ syn::Fields::Unit => {},
}
if all_fields_settable {
types.write_c_type(w, &field.ty, Some(&gen_types), false);
}
}
- _ => unreachable!()
+ syn::Fields::Unit => {},
}
write!(w, ") -> {} {{\n\t", struct_name).unwrap();
match &s.fields {
}
}
},
- _ => unreachable!()
+ syn::Fields::Unit => {},
}
write!(w, "{} {{ inner: ObjOps::heap_alloc(", struct_name).unwrap();
match &s.fields {
}
write!(w, "\t)").unwrap();
},
- _ => unreachable!()
+ syn::Fields::Unit => write!(w, "{}::{} {{}}", types.module_path, struct_name).unwrap(),
}
writeln!(w, "), is_owned: true }}\n}}").unwrap();
}
if let Some(trait_path) = i.trait_.as_ref() {
if let Some(tp) = import_resolver.maybe_resolve_path(&trait_path.1, None) {
if let Some(sp) = import_resolver.maybe_resolve_path(&p.path, None) {
- match crate_types.trait_impls.entry(sp) {
- hash_map::Entry::Occupied(mut e) => { e.get_mut().push(tp); },
- hash_map::Entry::Vacant(e) => { e.insert(vec![tp]); },
+ match crate_types.trait_impls.entry(sp.clone()) {
+ hash_map::Entry::Occupied(mut e) => { e.get_mut().push(tp.clone()); },
+ hash_map::Entry::Vacant(e) => { e.insert(vec![tp.clone()]); },
+ }
+ match crate_types.traits_impld.entry(tp) {
+ hash_map::Entry::Occupied(mut e) => { e.get_mut().push(sp); },
+ hash_map::Entry::Vacant(e) => { e.insert(vec![sp]); },
}
}
}
}
if let Some(tp) = import_resolver.maybe_resolve_path(&trait_path.1, None) {
if let Some(sp) = import_resolver.maybe_resolve_path(&p.path, None) {
- match crate_types.trait_impls.entry(sp) {
- hash_map::Entry::Occupied(mut e) => { e.get_mut().push(tp); },
- hash_map::Entry::Vacant(e) => { e.insert(vec![tp]); },
+ match crate_types.trait_impls.entry(sp.clone()) {
+ hash_map::Entry::Occupied(mut e) => { e.get_mut().push(tp.clone()); },
+ hash_map::Entry::Vacant(e) => { e.insert(vec![tp.clone()]); },
+ }
+ match crate_types.traits_impld.entry(tp) {
+ hash_map::Entry::Occupied(mut e) => { e.get_mut().push(sp); },
+ hash_map::Entry::Vacant(e) => { e.insert(vec![sp]); },
}
}
}