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 Copy for GeneratedFileKind

Source§

impl Debug for GeneratedFileKind

Source§

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

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

impl Eq for GeneratedFileKind

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 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.