fn main() { let proto_dir = "proto"; let protos = [ format!("{proto_dir}/common.proto"), format!("{proto_dir}/archive.proto"), format!("{proto_dir}/blame.proto"), format!("{proto_dir}/blob.proto"), format!("{proto_dir}/branch.proto"), format!("{proto_dir}/commit.proto"), format!("{proto_dir}/diff.proto"), format!("{proto_dir}/fork.proto"), format!("{proto_dir}/init.proto"), format!("{proto_dir}/merge.proto"), format!("{proto_dir}/tag.proto"), format!("{proto_dir}/tree.proto"), ]; tonic_prost_build::configure() .type_attribute(".", "#[derive(serde::Serialize, serde::Deserialize)]") .type_attribute("ObjectId", "#[serde(transparent)]") .field_attribute("ObjectId.value", "#[serde(rename = \"0\")]") .compile_protos(&protos, &[proto_dir.to_string()]) .unwrap_or_else(|e| panic!("Failed to compile protos: {e}")); }