// use prost_build as _; // Not directly used fn main() -> Result<(), Box> { // Configure tonic-prost-build for proto compilation (Tonic 0.14+) tonic_prost_build::configure() .build_server(false) // TLI is client-only .build_client(true) // Force correct protobuf attributes for all messages .type_attribute(".", "#[derive(serde::Serialize, serde::Deserialize)]") // Suppress warnings in generated code .server_mod_attribute(".", "#[allow(unused_qualifications)]") .client_mod_attribute(".", "#[allow(unused_qualifications)]") // Enable proper protobuf derives .protoc_arg("--experimental_allow_proto3_optional") .compile_protos( &[ "proto/trading.proto", "proto/health.proto", "proto/ml.proto", "proto/config.proto", "proto/ml_training.proto", "proto/trading_agent.proto", ], &["proto"], )?; // Tell cargo to recompile if proto files change println!("cargo:rerun-if-changed=proto/trading.proto"); println!("cargo:rerun-if-changed=proto/health.proto"); println!("cargo:rerun-if-changed=proto/ml.proto"); println!("cargo:rerun-if-changed=proto/config.proto"); println!("cargo:rerun-if-changed=proto/ml_training.proto"); println!("cargo:rerun-if-changed=proto/trading_agent.proto"); Ok(()) }