#[non_exhaustive]pub enum GeneratedFileKind {
Owned,
View,
Oneof,
ViewOneof,
Ext,
PackageMod,
Companion,
}Expand description
Kind of GeneratedFile.
generate produces up to five per-proto content kinds — one each
of Owned, View, Oneof,
ViewOneof, and Ext per input
.proto file — plus one PackageMod stitcher per
package. Kinds with no content for the input (a proto with no oneofs
emits no Oneof / ViewOneof;
no extensions, no Ext; etc.) are omitted. Build
integrations only need to wire up PackageMod entries; the per-proto
content kinds are reached via include! from the stitcher and need
only be written to disk alongside it. Under
CodeGenConfig::file_per_package only PackageMod is emitted.
Companion is the one kind not produced by
generate: downstream code generators construct Companion files
themselves and merge them into buffa’s output via
apply_companions.
This enum is #[non_exhaustive] — match with a wildcard arm so new
kinds can be added without a major version bump.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Owned
Owned message structs and enums (<stem>.rs).
View
View structs (<stem>.__view.rs).
Oneof
Owned oneof enums (<stem>.__oneof.rs).
ViewOneof
View oneof enums (<stem>.__view_oneof.rs).
Ext
File-level proto-extension consts (<stem>.__ext.rs) — the
pub const ExtensionDescriptor items generated from extend
blocks. Not to be confused with Companion,
which is unrelated downstream-supplied content.
PackageMod
Per-package stitcher (<dotted.pkg>.mod.rs). The only file build
systems need to wire up directly.
Companion
Extra per-proto content from a downstream code generator (service stubs, extra trait impls, etc.) that travels with buffa’s output.
Not produced by generate. Construct these in your own generator
and pass them to apply_companions, which appends an include!
for each one at file scope in the matching package’s
PackageMod — after buffa’s own output, at
package root alongside the owned message types (not under the
__buffa:: sentinel module). Items declared pub in a companion
file are visible at crate::<pkg>::*.
Not to be confused with Ext, which is the buffa-
generated file holding protobuf extend consts.
Trait Implementations§
Source§impl Clone for GeneratedFileKind
impl Clone for GeneratedFileKind
Source§fn clone(&self) -> GeneratedFileKind
fn clone(&self) -> GeneratedFileKind
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for GeneratedFileKind
impl Debug for GeneratedFileKind
Source§impl PartialEq for GeneratedFileKind
impl PartialEq for GeneratedFileKind
Source§fn eq(&self, other: &GeneratedFileKind) -> bool
fn eq(&self, other: &GeneratedFileKind) -> bool
self and other values to be equal, and is used by ==.