Implementation:Alibaba MNN FlatBuffers IDL Gen Rust
| Knowledge Sources | |
|---|---|
| Domains | Serialization, Code_Generation |
| Last Updated | 2026-02-10 12:00 GMT |
Overview
Rust code generator backend that produces FlatBuffers accessor structs with lifetime-safe zero-copy access for Rust.
Description
idl_gen_rust.cpp implements the Rust code generation backend for flatc. It generates Rust structs with lifetime parameters that enforce borrow-checked access to the underlying FlatBuffer byte slice. The generated code leverages Rust's type system to provide safe zero-copy access, producing accessor methods that return references tied to the buffer lifetime. Builder structs with associated Args types are generated for constructing FlatBuffers.
Usage
Vendored dependency used internally by MNN for model serialization. Not directly imported by end users.
Code Reference
Source Location
- Repository: Alibaba_MNN
- File:
3rd_party/flatbuffers/src/idl_gen_rust.cpp - Lines: 1-1821
Signature
namespace flatbuffers {
bool GenerateRust(const Parser &parser,
const std::string &path,
const std::string &file_name);
}
Import
#include "flatbuffers/idl.h"
// Generator invoked internally by flatc
I/O Contract
| Input | Output |
|---|---|
| Parsed Parser object with schema definitions | *_generated.rs Rust source file with lifetime-annotated accessors
|
Usage Examples
// Invoked by flatc:
// flatc --rust schema.fbs
// Internally:
flatbuffers::Parser parser;
parser.Parse(schema);
flatbuffers::GenerateRust(parser, output_path, file_name);