let mut self_path_segs = syn::punctuated::Punctuated::new();
self_path_segs.push(s.ident.clone().into());
let self_path = syn::Path { leading_colon: None, segments: self_path_segs};
let mut self_path_segs = syn::punctuated::Punctuated::new();
self_path_segs.push(s.ident.clone().into());
let self_path = syn::Path { leading_colon: None, segments: self_path_segs};
assert!(gen_types.learn_generics(&s.generics, types));
let mut all_fields_settable = true;
assert!(gen_types.learn_generics(&s.generics, types));
let mut all_fields_settable = true;
if p.qself.is_some() { unimplemented!(); }
if let Some(ident) = single_ident_generic_path_to_ident(&p.path) {
if let Some(resolved_path) = types.maybe_resolve_non_ignored_ident(&ident) {
if p.qself.is_some() { unimplemented!(); }
if let Some(ident) = single_ident_generic_path_to_ident(&p.path) {
if let Some(resolved_path) = types.maybe_resolve_non_ignored_ident(&ident) {
if !gen_types.learn_generics(&i.generics, types) {
eprintln!("Not implementing anything for impl {} due to not understood generics", ident);
return;
if !gen_types.learn_generics(&i.generics, types) {
eprintln!("Not implementing anything for impl {} due to not understood generics", ident);
return;