Ctrl K
ComunidadGuías…

protobuf/build.rs

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
use prost_wkt_build::{FileDescriptorSet, Message};
use std::env;
use std::path::PathBuf;

fn main() {
    // Build protobuf messages
    println!("cargo:rerun-if-changed=./proto");
    let out = PathBuf::from(env::var("OUT_DIR").unwrap());
    let descriptor_file = out.join("descriptors.bin");
    let mut prost_build = prost_build::Config::new();
    prost_build
        .type_attribute(".", "#[derive(serde::Serialize,serde::Deserialize)]")
        .extern_path(".google.protobuf.Any", "::prost_wkt_types::Any")
        .extern_path(".google.protobuf.Timestamp", "::prost_wkt_types::Timestamp")
        .extern_path(".google.protobuf.Value", "::prost_wkt_types::Value")
        .enum_attribute(".", "#[allow(clippy::enum_variant_names)]")
        .file_descriptor_set_path(&descriptor_file)
        .compile_protos(
            &[
                "./proto/object_storage_response.proto",
                "./proto/request_attempt.proto",
            ],
            &["./proto/"],
        )
        .unwrap();
    let descriptor_bytes = std::fs::read(descriptor_file).unwrap();
    let descriptor = FileDescriptorSet::decode(&descriptor_bytes[..]).unwrap();
    prost_wkt_build::add_serde(out, descriptor);
}