Obtain Slice iterator stride in a way that works for opaque types
diff --git a/gen/src/builtin.rs b/gen/src/builtin.rs
index d43038b..409a5d1 100644
--- a/gen/src/builtin.rs
+++ b/gen/src/builtin.rs
@@ -64,6 +64,7 @@
         include.iterator = true;
         include.type_traits = true;
         builtin.friend_impl = true;
+        builtin.layout = true;
         builtin.panic = true;
     }
 
@@ -141,6 +142,12 @@
         writeln!(out, "class Opaque;");
     }
 
+    if builtin.rust_slice {
+        out.next_section();
+        writeln!(out, "template <typename T>");
+        writeln!(out, "::std::size_t size_of();");
+    }
+
     ifndef::write(out, builtin.rust_string, "CXXBRIDGE1_RUST_STRING");
     ifndef::write(out, builtin.rust_str, "CXXBRIDGE1_RUST_STR");
     ifndef::write(out, builtin.rust_slice, "CXXBRIDGE1_RUST_SLICE");