Skip to main content

GeneratedFileKind

Enum GeneratedFileKind 

Source
#[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
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

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

Source§

fn clone(&self) -> GeneratedFileKind

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for GeneratedFileKind

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for GeneratedFileKind

Source§

fn eq(&self, other: &GeneratedFileKind) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for GeneratedFileKind

Source§

impl Eq for GeneratedFileKind

Source§

impl StructuralPartialEq for GeneratedFileKind

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.