projects
/
ldk-c-bindings
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f8b6a37
)
Support tuples containing array elements
author
Matt Corallo
<git@bluematt.me>
Tue, 28 Feb 2023 23:31:11 +0000
(23:31 +0000)
committer
Matt Corallo
<git@bluematt.me>
Mon, 6 Mar 2023 04:16:09 +0000
(
04:16
+0000)
c-bindings-gen/src/types.rs
patch
|
blob
|
history
diff --git
a/c-bindings-gen/src/types.rs
b/c-bindings-gen/src/types.rs
index 64f2a688adf2441b51b196da4ffe5fb7b60933a8..73ba02a3e1dc87b4501c0a38990c5f4b12ef54dd 100644
(file)
--- a/
c-bindings-gen/src/types.rs
+++ b/
c-bindings-gen/src/types.rs
@@
-2817,6
+2817,13
@@
impl<'a, 'c: 'a> TypeResolver<'a, 'c> {
if let syn::Type::Path(p) = &*refelem.elem {
write_path!(p, Some(&mut mangled_tuple_type));
} else { return false; }
if let syn::Type::Path(p) = &*refelem.elem {
write_path!(p, Some(&mut mangled_tuple_type));
} else { return false; }
+ } else if let syn::Type::Array(_) = elem {
+ let mut resolved = Vec::new();
+ if !self.write_c_type_intern(&mut resolved, &elem, generics, false, false, true, false, true) { return false; }
+ let array_inner = String::from_utf8(resolved).unwrap();
+ let arr_name = array_inner.split("::").last().unwrap();
+ write!(w, "{}", arr_name).unwrap();
+ write!(mangled_type, "{}", arr_name).unwrap();
} else { return false; }
}
write!(w, "Z").unwrap();
} else { return false; }
}
write!(w, "Z").unwrap();