fn main() -> Result<(), Box> { tonic_build::configure() .build_server(true) .protoc_arg("--experimental_allow_proto3_optional") .type_attribute( ".vm_proto.VmContract", "#[derive(serde::Serialize, serde::Deserialize)]", ) .type_attribute( ".vm_proto.MappedPort", "#[derive(serde::Serialize, serde::Deserialize)]", ) .type_attribute( ".app_proto.MappedPort", "#[derive(serde::Serialize, serde::Deserialize)]", ) .type_attribute( ".app_proto.AppResource", "#[derive(serde::Serialize, serde::Deserialize)]", ) .type_attribute( ".app_proto.AppContract", "#[derive(serde::Serialize, serde::Deserialize)]", ) .type_attribute( ".app_proto.AppNodeListResp", "#[derive(serde::Serialize, serde::Deserialize)]", ) .type_attribute( ".general_proto.ListOperatorsResp", "#[derive(serde::Serialize, serde::Deserialize)]", ) .type_attribute( ".general_proto.InspectOperatorResp", "#[derive(serde::Serialize, serde::Deserialize)]", ) .type_attribute( ".vm_proto.VmNodeListResp", "#[derive(serde::Serialize, serde::Deserialize)]", ) .type_attribute( ".dtpm_proto.FileEntry", "#[derive(serde::Serialize, serde::Deserialize, bincode::Encode, bincode::Decode)]", ) .compile_protos( &[ "proto/sgx/app.proto", "proto/sgx/dtpm.proto", "proto/snp/vm.proto", "proto/shared/common.proto", "proto/shared/general.proto", ], &["proto"], )?; Ok(()) }