Skip to main content

Codegen

Struct Codegen 

Source
pub struct Codegen { /* private fields */ }
Expand description

Builder for pure-Rust Protocol Buffers and ttrpc code generation.

Implementations§

Source§

impl Codegen

Source

pub fn new() -> Self

Creates an empty code generation builder.

Source

pub fn out_dir(&mut self, out_dir: impl AsRef<Path>) -> &mut Self

Sets the output directory.

Source

pub fn include(&mut self, include: impl AsRef<Path>) -> &mut Self

Adds a directory searched for imported .proto files.

Canonical Google well-known type imports are resolved automatically and do not need to be present in an include directory.

Source

pub fn includes( &mut self, includes: impl IntoIterator<Item = impl AsRef<Path>>, ) -> &mut Self

Adds directories searched for imported .proto files.

Source

pub fn input(&mut self, input: impl AsRef<Path>) -> &mut Self

Adds a .proto file to compile.

Source

pub fn inputs( &mut self, inputs: impl IntoIterator<Item = impl AsRef<Path>>, ) -> &mut Self

Adds .proto files to compile.

Source

pub fn rust_protobuf(&mut self) -> &mut Self

Enables generation of rust-protobuf message types alongside ttrpc services.

Source

pub fn rust_protobuf_customize( &mut self, customize: ProtobufCustomize, ) -> &mut Self

Sets the rust-protobuf code generation options.

Source

pub fn rust_protobuf_customize_callback( &mut self, customize: impl ProtobufCustomizeCallback, ) -> &mut Self

Sets a callback for per-element rust-protobuf customization.

Source

pub fn customize(&mut self, customize: Customize) -> &mut Self

Sets ttrpc client and server generation options.

Source

pub fn run(&mut self) -> Result<()>

Parses the configured inputs and writes generated Rust files.

This is equivalent to a protoc-based generation step but does not require protoc or protoc-gen-rust in PATH.

§Errors

Returns an error if an input cannot be read or parsed, imports or types cannot be resolved, or generated service files cannot be written.

§Panics

Panics if rust_protobuf generation is enabled and message generation fails.

Trait Implementations§

Source§

impl Debug for Codegen

Source§

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

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

impl Default for Codegen

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

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> 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.