Add padding around member functions that have documentation
diff --git a/gen/src/write.rs b/gen/src/write.rs
index 3a4f8ff..645b988 100644
--- a/gen/src/write.rs
+++ b/gen/src/write.rs
@@ -249,9 +249,12 @@
         writeln!(out, "{};", field.name.cxx);
     }
 
-    writeln!(out);
+    out.next_section();
 
     for method in methods {
+        if !method.doc.is_empty() {
+            out.next_section();
+        }
         for line in method.doc.to_string().lines() {
             writeln!(out, "  //{}", line);
         }
@@ -261,6 +264,9 @@
         let indirect_call = false;
         write_rust_function_shim_decl(out, &local_name, sig, indirect_call);
         writeln!(out, ";");
+        if !method.doc.is_empty() {
+            out.next_section();
+        }
     }
 
     if operator_eq {
@@ -336,7 +342,10 @@
         ety.name.cxx,
     );
 
-    for method in methods {
+    for (i, method) in methods.iter().enumerate() {
+        if i > 0 && !method.doc.is_empty() {
+            out.next_section();
+        }
         for line in method.doc.to_string().lines() {
             writeln!(out, "  //{}", line);
         }
@@ -346,6 +355,9 @@
         let indirect_call = false;
         write_rust_function_shim_decl(out, &local_name, sig, indirect_call);
         writeln!(out, ";");
+        if !method.doc.is_empty() {
+            out.next_section();
+        }
     }
 
     writeln!(out, "  ~{}() = delete;", ety.name.cxx);
diff --git a/syntax/doc.rs b/syntax/doc.rs
index 60bb4da..cd764fa 100644
--- a/syntax/doc.rs
+++ b/syntax/doc.rs
@@ -17,6 +17,10 @@
         self.fragments.push(lit);
     }
 
+    pub fn is_empty(&self) -> bool {
+        self.fragments.is_empty()
+    }
+
     pub fn to_string(&self) -> String {
         let mut doc = String::new();
         for lit in &self.fragments {