fn main() -> Result<(), Box<dyn std::error::Error>> {
let proto_files = [
"proto/common.proto",
"proto/capability.proto",
"proto/node.proto",
"proto/cell.proto",
"proto/beacon.proto",
"proto/composition.proto",
"proto/zone.proto",
"proto/role.proto",
"proto/hierarchy.proto",
"proto/command.proto",
"proto/security.proto",
"proto/track.proto",
"proto/model.proto",
"proto/sensor.proto",
"proto/actuator.proto",
"proto/effector.proto",
"proto/product.proto",
"proto/tasking.proto",
"proto/event.proto",
"proto/registry.proto",
];
let mut config = prost_build::Config::new();
config.type_attribute(".", "#[derive(serde::Serialize, serde::Deserialize)]");
config.protoc_arg("--experimental_allow_proto3_optional");
config.compile_protos(&proto_files, &["proto/"])?;
for file in &proto_files {
println!("cargo:rerun-if-changed={}", file);
}
Ok(())
}