Include <cassert> where needed in generated code
diff --git a/gen/src/builtin.rs b/gen/src/builtin.rs
index 3b411aa..378467b 100644
--- a/gen/src/builtin.rs
+++ b/gen/src/builtin.rs
@@ -64,6 +64,7 @@
     if builtin.rust_vec {
         include.algorithm = true;
         include.array = true;
+        include.cassert = true;
         include.cstddef = true;
         include.cstdint = true;
         include.initializer_list = true;
@@ -78,6 +79,7 @@
 
     if builtin.rust_slice {
         include.array = true;
+        include.cassert = true;
         include.cstddef = true;
         include.cstdint = true;
         include.iterator = true;
diff --git a/gen/src/include.rs b/gen/src/include.rs
index 6b7e580..93ce60b 100644
--- a/gen/src/include.rs
+++ b/gen/src/include.rs
@@ -23,6 +23,7 @@
     pub custom: Vec<Include>,
     pub algorithm: bool,
     pub array: bool,
+    pub cassert: bool,
     pub cstddef: bool,
     pub cstdint: bool,
     pub cstring: bool,
@@ -75,6 +76,7 @@
         custom: _,
         algorithm,
         array,
+        cassert,
         cstddef,
         cstdint,
         cstring,
@@ -99,6 +101,9 @@
     if array {
         writeln!(out, "#include <array>");
     }
+    if cassert {
+        writeln!(out, "#include <cassert>");
+    }
     if cstddef {
         writeln!(out, "#include <cstddef>");
     }