Skip to main content

Crate buffa_codegen

Crate buffa_codegen 

Source
Expand description

Shared code generation logic for buffa.

This crate takes protobuf descriptors (google.protobuf.FileDescriptorProto, decoded from binary FileDescriptorSet data) and emits Rust source code that uses the buffa runtime.

It is used by:

  • protoc-gen-buffa (protoc plugin)
  • buffa-build (build.rs integration)

§Architecture

The code generator is intentionally decoupled from how descriptors are obtained. It receives fully-resolved FileDescriptorProtos and produces Rust source strings. This means:

  • It doesn’t parse .proto files.
  • It doesn’t invoke protoc.
  • It doesn’t do import resolution or name linking.

All of that is handled upstream (by protoc, buf, or a future parser).

Modules§

context
Code generation context and descriptor-to-Rust mapping state.
idents
Rust identifier and path construction helpers.

Structs§

CodeGenConfig
Configuration for code generation.
GeneratedFile
Result of generating Rust code for a single .proto file.

Enums§

CodeGenError
Code generation error.

Functions§

generate
Generate Rust source files from a set of file descriptors.
generate_module_tree
Generate a module tree that assembles generated .rs files into nested pub mod blocks matching the protobuf package hierarchy.
proto_path_to_rust_module
Convert a .proto file path to a Rust module file name.