Macro tonic::include_file_descriptor_set

source ·
macro_rules! include_file_descriptor_set {
    ($package: tt) => { ... };
}
Expand description

Include an encoded prost_types::FileDescriptorSet as a &'static [u8]. The parameter must be the stem of the filename passed to file_descriptor_set_path for the tonic-build::Builder, excluding the .bin extension.

For example, a file descriptor set compiled like this in build.rs:

let descriptor_path = PathBuf::from(env::var("OUT_DIR").unwrap()).join("my_descriptor.bin")
tonic_build::configure()
    .file_descriptor_set_path(&descriptor_path)
    .format(true)
    .compile(&["proto/reflection.proto"], &["proto/"])?;

Can be included like this:

mod pb {
    pub(crate) const FILE_DESCRIPTOR_SET: &[u8] = tonic::include_file_descriptor_set!("my_descriptor");
}

§Note:

This only works if the tonic-build output directory has been unmodified. The default output directory is set to the OUT_DIR environment variable. If the output directory has been modified, the following pattern may be used instead of this macro.

mod pb {
    pub(crate) const FILE_DESCRIPTOR_SET: &[u8] = include_bytes!("/relative/protobuf/directory/descriptor_name.bin");
}