X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=c-bindings-gen%2Fsrc%2Fblocks.rs;fp=c-bindings-gen%2Fsrc%2Fblocks.rs;h=57135789b71079f97961f1aa3e020acfcf64f4bf;hb=5707a3831c6c36f14e7fb4b8dd083451cc64b2c0;hp=e48a98a5c5a14787f489096eabd8d283267d33ec;hpb=18dc4eff64fcad567e67dfe11c501a9b4ec7633e;p=ldk-c-bindings diff --git a/c-bindings-gen/src/blocks.rs b/c-bindings-gen/src/blocks.rs index e48a98a..5713578 100644 --- a/c-bindings-gen/src/blocks.rs +++ b/c-bindings-gen/src/blocks.rs @@ -751,4 +751,20 @@ pub fn maybe_write_generics(w: &mut W, generics: &syn::Generi } } - +pub fn maybe_write_lifetime_generics(w: &mut W, generics: &syn::Generics, types: &TypeResolver) { + let mut gen_types = GenericTypes::new(None); + assert!(gen_types.learn_generics(generics, types)); + if generics.params.iter().any(|param| if let syn::GenericParam::Lifetime(_) = param { true } else { false }) { + write!(w, "<").unwrap(); + for (idx, generic) in generics.params.iter().enumerate() { + match generic { + syn::GenericParam::Type(_) => {}, + syn::GenericParam::Lifetime(lt) => { + write!(w, "{}'{}", if idx != 0 { ", " } else { "" }, lt.lifetime.ident).unwrap(); + }, + _ => unimplemented!(), + } + } + write!(w, ">").unwrap(); + } +}