Struct tonic_build_codec::Builder
source · [−]pub struct Builder { /* private fields */ }
Expand description
Service generator builder.
Implementations
sourceimpl Builder
impl Builder
sourcepub fn build_client(self, enable: bool) -> Self
pub fn build_client(self, enable: bool) -> Self
Enable or disable gRPC client code generation.
sourcepub fn build_server(self, enable: bool) -> Self
pub fn build_server(self, enable: bool) -> Self
Enable or disable gRPC server code generation.
sourcepub fn file_descriptor_set_path(self, path: impl AsRef<Path>) -> Self
pub fn file_descriptor_set_path(self, path: impl AsRef<Path>) -> Self
Generate a file containing the encoded prost_types::FileDescriptorSet
for protocol buffers
modules. This is required for implementing gRPC Server Reflection.
sourcepub fn out_dir(self, out_dir: impl AsRef<Path>) -> Self
pub fn out_dir(self, out_dir: impl AsRef<Path>) -> Self
Set the output directory to generate code to.
Defaults to the OUT_DIR
environment variable.
sourcepub fn extern_path(
self,
proto_path: impl AsRef<str>,
rust_path: impl AsRef<str>
) -> Self
pub fn extern_path(
self,
proto_path: impl AsRef<str>,
rust_path: impl AsRef<str>
) -> Self
Declare externally provided Protobuf package or type.
Passed directly to prost_build::Config.extern_path
.
Note that both the Protobuf path and the rust package paths should both be fully qualified.
i.e. Protobuf paths should start with “.” and rust paths should start with “::”
sourcepub fn field_attribute<P: AsRef<str>, A: AsRef<str>>(
self,
path: P,
attribute: A
) -> Self
pub fn field_attribute<P: AsRef<str>, A: AsRef<str>>(
self,
path: P,
attribute: A
) -> Self
Add additional attribute to matched messages, enums, and one-offs.
Passed directly to prost_build::Config.field_attribute
.
sourcepub fn type_attribute<P: AsRef<str>, A: AsRef<str>>(
self,
path: P,
attribute: A
) -> Self
pub fn type_attribute<P: AsRef<str>, A: AsRef<str>>(
self,
path: P,
attribute: A
) -> Self
Add additional attribute to matched messages, enums, and one-offs.
Passed directly to prost_build::Config.type_attribute
.
sourcepub fn codec<P: AsRef<str>, A: AsRef<str>>(
self,
content_type: P,
codec_mod: A
) -> Self
pub fn codec<P: AsRef<str>, A: AsRef<str>>(
self,
content_type: P,
codec_mod: A
) -> Self
Add a codec.
Examples
.codec(“application/grpc | application/grpc+proto”, “tonic::codec::ProstCodec”)
.codec(“application/json | application/grpc+json”, “crate::lib::codec::JsonCodec”)
sourcepub fn server_mod_attribute<P: AsRef<str>, A: AsRef<str>>(
self,
path: P,
attribute: A
) -> Self
pub fn server_mod_attribute<P: AsRef<str>, A: AsRef<str>>(
self,
path: P,
attribute: A
) -> Self
Add additional attribute to matched server mod
s. Matches on the package name.
sourcepub fn server_attribute<P: AsRef<str>, A: AsRef<str>>(
self,
path: P,
attribute: A
) -> Self
pub fn server_attribute<P: AsRef<str>, A: AsRef<str>>(
self,
path: P,
attribute: A
) -> Self
Add additional attribute to matched service servers. Matches on the service name.
sourcepub fn client_mod_attribute<P: AsRef<str>, A: AsRef<str>>(
self,
path: P,
attribute: A
) -> Self
pub fn client_mod_attribute<P: AsRef<str>, A: AsRef<str>>(
self,
path: P,
attribute: A
) -> Self
Add additional attribute to matched client mod
s. Matches on the package name.
sourcepub fn client_attribute<P: AsRef<str>, A: AsRef<str>>(
self,
path: P,
attribute: A
) -> Self
pub fn client_attribute<P: AsRef<str>, A: AsRef<str>>(
self,
path: P,
attribute: A
) -> Self
Add additional attribute to matched service clients. Matches on the service name.
sourcepub fn proto_path(self, proto_path: impl AsRef<str>) -> Self
pub fn proto_path(self, proto_path: impl AsRef<str>) -> Self
Set the path to where tonic will search for the Request/Response proto structs
live relative to the module where you call include_proto!
.
This defaults to super
since tonic will generate code in a module.
sourcepub fn protoc_arg<A: AsRef<str>>(self, arg: A) -> Self
pub fn protoc_arg<A: AsRef<str>>(self, arg: A) -> Self
Configure Prost protoc_args
build arguments.
Note: Enabling --experimental_allow_proto3_optional
requires protobuf >= 3.12.
sourcepub fn disable_package_emission(self) -> Self
pub fn disable_package_emission(self) -> Self
Emits GRPC endpoints with no attached package. Effectively ignores protofile package declaration from grpc context.
This effectively sets prost’s exported package to an empty string.
sourcepub fn compile_well_known_types(self, compile_well_known_types: bool) -> Self
pub fn compile_well_known_types(self, compile_well_known_types: bool) -> Self
Enable or disable directing Prost to compile well-known protobuf types instead
of using the already-compiled versions available in the prost-types
crate.
This defaults to false
.
sourcepub fn include_file(self, path: impl AsRef<Path>) -> Self
pub fn include_file(self, path: impl AsRef<Path>) -> Self
Configures the optional module filename for easy inclusion of all generated Rust files
If set, generates a file (inside the OUT_DIR
or out_dir()
as appropriate) which contains
a set of pub mod XXX
statements combining to load all Rust files generated. This can allow
for a shortcut where multiple related proto files have been compiled together resulting in
a semi-complex set of includes.
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Builder
impl Send for Builder
impl Sync for Builder
impl Unpin for Builder
impl UnwindSafe for Builder
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
Uses borrowed data to replace owned data, usually by cloning. Read more