use std::io::Result; fn main() -> Result<()> { // Build gRPC service definitions for E2E test clients (Tonic 0.14+) // // NOTE: Building TLI trading.proto separately to avoid naming conflicts // with trading_service trading.proto (both define trading.proto but with different packages) tonic_prost_build::configure() .build_server(false) // We only need clients for E2E tests .build_client(true) .out_dir("src/proto") // Suppress warnings in generated code .server_mod_attribute(".", "#[allow(unused_qualifications)]") .client_mod_attribute(".", "#[allow(unused_qualifications)]") .compile_protos( &[ "../../services/trading_service/proto/trading.proto", "../../services/trading_service/proto/config.proto", "../../services/trading_service/proto/risk.proto", "../../services/ml_training_service/proto/ml_training.proto", ], &[ "../../services/trading_service/proto", "../../services/ml_training_service/proto", ], )?; // Build TLI protos separately (backtesting service uses TLI proto) tonic_prost_build::configure() .build_server(false) .build_client(true) .out_dir("src/proto") .server_mod_attribute(".", "#[allow(unused_qualifications)]") .client_mod_attribute(".", "#[allow(unused_qualifications)]") .compile_protos( &["../../tli/proto/trading.proto"], &["../../tli/proto"], )?; println!("cargo:rerun-if-changed=../../services/"); Ok(()) }