East const to make nested pointer types work
diff --git a/gen/src/write.rs b/gen/src/write.rs
index b3911c1..930ce0b 100644
--- a/gen/src/write.rs
+++ b/gen/src/write.rs
@@ -1173,17 +1173,31 @@
write!(out, ">");
}
Type::Ref(r) => {
- if !r.mutable {
- write!(out, "const ");
+ if let Type::Ptr(_) = r.inner {
+ write_type_space(out, &r.inner);
+ if !r.mutable {
+ write!(out, "const");
+ }
+ } else {
+ if !r.mutable {
+ write!(out, "const ");
+ }
+ write_type(out, &r.inner);
}
- write_type(out, &r.inner);
write!(out, " &");
}
Type::Ptr(p) => {
- if !p.mutable {
- write!(out, "const ");
+ if let Type::Ptr(_) = p.inner {
+ write_type_space(out, &p.inner);
+ if !p.mutable {
+ write!(out, "const");
+ }
+ } else {
+ if !p.mutable {
+ write!(out, "const ");
+ }
+ write_type(out, &p.inner);
}
- write_type(out, &p.inner);
write!(out, " *");
}
Type::Str(_) => {