Jump to content

Connect Leeroopedia MCP: Equip your AI agents to search best practices, build plans, verify code, diagnose failures, and look up hyperparameter defaults.

Implementation:Alibaba MNN FlatBuffers IDL Gen Rust

From Leeroopedia


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);

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment