    Blocking waiting for file lock on build directory
warning: unused import: `std::io::Write`
   --> trading_engine/src/compliance/audit_trails.rs:367:13
    |
367 |         use std::io::Write;
    |             ^^^^^^^^^^^^^^
    |
    = note: `#[warn(unused_imports)]` on by default

warning: unused import: `std::fs::OpenOptions`
   --> trading_engine/src/compliance/audit_trails.rs:368:13
    |
368 |         use std::fs::OpenOptions;
    |             ^^^^^^^^^^^^^^^^^^^^

warning: unnecessary qualification
   --> trading_engine/src/compliance/audit_trails.rs:801:25
    |
801 |             start_time: chrono::Utc::now() - chrono::Duration::hours(24),
    |                         ^^^^^^^^^^^^^^^^
    |
    = note: requested on the command line with `-W unused-qualifications`
help: remove the unnecessary path segments
    |
801 -             start_time: chrono::Utc::now() - chrono::Duration::hours(24),
801 +             start_time: Utc::now() - chrono::Duration::hours(24),
    |

warning: unnecessary qualification
   --> trading_engine/src/compliance/audit_trails.rs:802:23
    |
802 |             end_time: chrono::Utc::now(),
    |                       ^^^^^^^^^^^^^^^^
    |
help: remove the unnecessary path segments
    |
802 -             end_time: chrono::Utc::now(),
802 +             end_time: Utc::now(),
    |

warning: variable does not need to be mutable
   --> trading_engine/src/compliance/audit_trails.rs:330:9
    |
330 |         mut receiver: mpsc::UnboundedReceiver<TransactionAuditEvent>,
    |         ----^^^^^^^^
    |         |
    |         help: remove this `mut`
    |
    = note: `#[warn(unused_mut)]` on by default

warning: unused import: `std::io::Write`
   --> trading_engine/src/compliance/audit_trails.rs:537:13
    |
537 |         use std::io::Write;
    |             ^^^^^^^^^^^^^^

warning: variable does not need to be mutable
   --> trading_engine/src/compliance/audit_trails.rs:539:13
    |
539 |         let mut file = OpenOptions::new()
    |             ----^^^^
    |             |
    |             help: remove this `mut`

warning: `trading_engine` (lib) generated 7 warnings (run `cargo fix --lib -p trading_engine` to apply 6 suggestions)
warning: unused import: `aws_config::meta::credentials::CredentialsProviderChain`
  --> ml/src/checkpoint/storage.rs:27:5
   |
27 | use aws_config::meta::credentials::CredentialsProviderChain;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` on by default

warning: `ml` (lib) generated 1 warning (run `cargo fix --lib -p ml` to apply 1 suggestion)
   Compiling foxhunt_e2e v0.1.0 (/home/jgrusewski/Work/foxhunt/tests/e2e)
warning: unused variable: `order`
   --> services/trading_service/src/services/trading.rs:591:41
    |
591 |     async fn validate_order_risk(&self, order: &SubmitOrderRequest) -> TradingServiceResult<()> {
    |                                         ^^^^^ help: if this is intentional, prefix it with an underscore: `_order`
    |
    = note: `#[warn(unused_variables)]` on by default

warning: unused variable: `broker_config`
   --> services/trading_service/src/core/order_manager.rs:102:45
    |
102 |     pub async fn new(config: TradingConfig, broker_config: BrokerConfig) -> Result<Self, common::error::CommonError> {
    |                                             ^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_broker_config`

warning: unused variable: `book_latency`
   --> services/trading_service/src/core/order_manager.rs:444:13
    |
444 |         let book_latency = HardwareTimestamp::now().latency_ns(&book_start);
    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_book_latency`

warning: unused variable: `market_ops`
   --> services/trading_service/src/core/order_manager.rs:469:21
    |
469 |                 let market_ops = SimdMarketDataOps::new();
    |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_market_ops`

warning: unused variable: `symbol_hash`
   --> services/trading_service/src/core/position_manager.rs:442:13
    |
442 |         let symbol_hash = self.get_symbol_hash(symbol).await;
    |             ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbol_hash`

warning: unused variable: `exposure`
   --> services/trading_service/src/core/risk_manager.rs:375:17
    |
375 |             let exposure = self.get_account_exposure(account_id).await;
    |                 ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_exposure`

warning: unused variable: `timestamp_ns`
   --> services/trading_service/src/core/risk_manager.rs:603:13
    |
603 |         let timestamp_ns = HardwareTimestamp::now().as_nanos();
    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timestamp_ns`

warning: unused variable: `simd_ops`
   --> services/trading_service/src/core/risk_manager.rs:698:21
    |
698 |                 let simd_ops = SimdMarketDataOps::new();
    |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_simd_ops`

warning: unused variable: `aligned_returns`
   --> services/trading_service/src/core/risk_manager.rs:701:21
    |
701 |                 let aligned_returns = AlignedPrices::from_slice(&portfolio_returns);
    |                     ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_aligned_returns`

warning: unused variable: `quantity`
   --> services/trading_service/src/core/risk_manager.rs:875:9
    |
875 |         quantity: f64,
    |         ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_quantity`

warning: unused variable: `account_id`
   --> services/trading_service/src/core/risk_manager.rs:912:9
    |
912 |         account_id: &str,
    |         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_account_id`

warning: unused variable: `symbols_filter`
   --> services/trading_service/src/services/trading.rs:422:13
    |
422 |         let symbols_filter = req.symbols.clone();
    |             ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_symbols_filter`

warning: unused variable: `old_realized`
   --> services/trading_service/src/core/position_manager.rs:135:13
    |
135 |         let old_realized = self.realized_pnl.fetch_add(realized_pnl_delta, Ordering::AcqRel);
    |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_realized`

warning: unused variable: `timestamp_ns`
   --> services/trading_service/src/core/position_manager.rs:147:58
    |
147 |     pub fn update_market_price(&self, market_price: f64, timestamp_ns: u64) -> f64 {
    |                                                          ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_timestamp_ns`

warning: multiple fields are never read
   --> services/trading_service/src/core/execution_engine.rs:143:5
    |
141 | pub struct ExecutionEngine {
    |            --------------- fields in this struct
142 |     // Core components
143 |     position_manager: Arc<PositionManager>,
    |     ^^^^^^^^^^^^^^^^
144 |     risk_manager: Arc<RiskManager>,
145 |     broker_router: Arc<BrokerRouter>,
    |     ^^^^^^^^^^^^^
...
153 |     market_queue: Arc<LockFreeRingBuffer<ExecutionInstruction>>,
    |     ^^^^^^^^^^^^
154 |     twap_queue: Arc<LockFreeRingBuffer<ExecutionInstruction>>,
    |     ^^^^^^^^^^
155 |     vwap_queue: Arc<LockFreeRingBuffer<ExecutionInstruction>>,
    |     ^^^^^^^^^^
156 |     iceberg_queue: Arc<LockFreeRingBuffer<ExecutionInstruction>>,
    |     ^^^^^^^^^^^^^
...
159 |     execution_reports: Arc<LockFreeRingBuffer<ExecutionReport>>,
    |     ^^^^^^^^^^^^^^^^^
160 |     fill_notifications: mpsc::UnboundedSender<ExecutionReport>,
    |     ^^^^^^^^^^^^^^^^^^
...
164 |     metrics: Arc<AtomicMetrics>,
    |     ^^^^^^^
...
168 |     icmarkets_session: Arc<RwLock<Option<ICMarketsSession>>>,
    |     ^^^^^^^^^^^^^^^^^
169 |     ibkr_session: Arc<RwLock<Option<IBKRSession>>>,
    |     ^^^^^^^^^^^^
...
172 |     config: Arc<TradingConfig>,
    |     ^^^^^^
173 |     broker_configs: HashMap<String, BrokerConfig>,
    |     ^^^^^^^^^^^^^^
    |
    = note: `#[warn(dead_code)]` on by default

warning: methods `execute_volume_weighted_slices` and `detect_sniping_opportunity` are never used
   --> services/trading_service/src/core/execution_engine.rs:616:14
    |
176 | impl ExecutionEngine {
    | -------------------- methods in this implementation
...
616 |     async fn execute_volume_weighted_slices(&self, _instruction: &ExecutionInstruction, _routing: &RoutingDecision, _profile: &VolumeProf...
    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
617 |     async fn detect_sniping_opportunity(&self, _book_update: &BookUpdate, _instruction: &ExecutionInstruction) -> Result<SnipingOpportuni...
    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: fields `var_calculator`, `latency_tracker`, and `config` are never read
   --> services/trading_service/src/core/risk_manager.rs:122:5
    |
117 | pub struct RiskManager {
    |            ----------- fields in this struct
...
122 |     var_calculator: Arc<VarCalculator>,
    |     ^^^^^^^^^^^^^^
...
135 |     latency_tracker: Arc<HftLatencyTracker>,
    |     ^^^^^^^^^^^^^^^
...
145 |     config: Arc<RiskConfig>,
    |     ^^^^^^

warning: methods `calculate_kelly_size` and `price_to_fixed` are never used
   --> services/trading_service/src/core/risk_manager.rs:872:14
    |
153 | impl RiskManager {
    | ---------------- methods in this implementation
...
872 |     async fn calculate_kelly_size(
    |              ^^^^^^^^^^^^^^^^^^^^
...
993 |     fn price_to_fixed(&self, price: f64) -> u64 {
    |        ^^^^^^^^^^^^^^

warning: `trading_service` (lib) generated 18 warnings
warning: unused import: `crate::data_config::TrainingDataSourceConfig`
  --> services/ml_training_service/src/orchestrator.rs:22:5
   |
22 | use crate::data_config::TrainingDataSourceConfig;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` on by default

warning: `ml_training_service` (lib) generated 1 warning (run `cargo fix --lib -p ml_training_service` to apply 1 suggestion)
   Compiling ml_training_service v1.0.0 (/home/jgrusewski/Work/foxhunt/services/ml_training_service)
   Compiling api_gateway v1.0.0 (/home/jgrusewski/Work/foxhunt/services/api_gateway)
warning: unused variable: `i`
  --> services/api_gateway/examples/metrics_example.rs:76:9
   |
76 |     for i in 0..30 {
   |         ^ help: if this is intentional, prefix it with an underscore: `_i`
   |
   = note: `#[warn(unused_variables)]` on by default

warning: struct `TestJwtConfig` is never constructed
  --> services/api_gateway/tests/common/mod.rs:11:12
   |
11 | pub struct TestJwtConfig {
   |            ^^^^^^^^^^^^^
   |
   = note: `#[warn(dead_code)]` on by default

warning: function `generate_test_token` is never used
  --> services/api_gateway/tests/common/mod.rs:28:8
   |
28 | pub fn generate_test_token(
   |        ^^^^^^^^^^^^^^^^^^^

warning: function `generate_expired_token` is never used
  --> services/api_gateway/tests/common/mod.rs:65:8
   |
65 | pub fn generate_expired_token(user_id: &str) -> Result<String> {
   |        ^^^^^^^^^^^^^^^^^^^^^^

warning: function `generate_invalid_signature_token` is never used
  --> services/api_gateway/tests/common/mod.rs:96:8
   |
96 | pub fn generate_invalid_signature_token(user_id: &str) -> Result<String> {
   |        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: function `wait_for_redis` is never used
   --> services/api_gateway/tests/common/mod.rs:126:14
    |
126 | pub async fn wait_for_redis(redis_url: &str, max_attempts: usize) -> Result<()> {
    |              ^^^^^^^^^^^^^^

warning: function `cleanup_redis` is never used
   --> services/api_gateway/tests/common/mod.rs:159:14
    |
159 | pub async fn cleanup_redis(redis_url: &str) -> Result<()> {
    |              ^^^^^^^^^^^^^

warning: `api_gateway` (example "metrics_example") generated 1 warning
warning: `api_gateway` (test "service_proxy_tests") generated 6 warnings
   Compiling backtesting_service v1.0.0 (/home/jgrusewski/Work/foxhunt/services/backtesting_service)
warning: unused variable: `i`
   --> services/api_gateway/tests/rate_limiting_comprehensive.rs:196:9
    |
196 |     for i in 0..1000 {
    |         ^ help: if this is intentional, prefix it with an underscore: `_i`
    |
    = note: `#[warn(unused_variables)]` on by default

warning: `api_gateway` (test "rate_limiting_comprehensive") generated 1 warning
warning: type `PerformanceStats` is more private than the item `TestExecutionResult::performance_metrics`
   --> tests/test_runner.rs:150:5
    |
150 |     pub performance_metrics: HashMap<String, PerformanceStats>,
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `TestExecutionResult::performance_metrics` is reachable at visibility `pub`
    |
note: but type `PerformanceStats` is only usable at visibility `pub(crate)`
   --> tests/test_runner.rs:44:1
    |
44  | pub(crate) struct PerformanceStats {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    = note: `#[warn(private_interfaces)]` on by default

warning: type `SafeTestError` is more private than the item `CriticalPathTestRunner::run_tests`
   --> tests/test_runner.rs:201:5
    |
201 |     pub async fn run_tests(&self) -> SafeTestResult<TestExecutionResult> {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ method `CriticalPathTestRunner::run_tests` is reachable at visibility `pub`
    |
note: but type `SafeTestError` is only usable at visibility `pub(crate)`
   --> tests/test_runner.rs:25:1
    |
25  | pub(crate) enum SafeTestError {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: variant `Message` is never constructed
  --> tests/test_runner.rs:26:5
   |
25 | pub(crate) enum SafeTestError {
   |                 ------------- variant in this enum
26 |     Message(String),
   |     ^^^^^^^
   |
   = note: `SafeTestError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
   = note: `#[warn(dead_code)]` on by default

warning: fields `total_tests`, `passed_tests`, `failed_tests`, and `total_duration_ns` are never read
  --> tests/test_runner.rs:45:9
   |
44 | pub(crate) struct PerformanceStats {
   |                   ---------------- fields in this struct
45 |     pub total_tests: u64,
   |         ^^^^^^^^^^^
46 |     pub passed_tests: u64,
   |         ^^^^^^^^^^^^
47 |     pub failed_tests: u64,
   |         ^^^^^^^^^^^^
48 |     pub total_duration_ns: u64,
   |         ^^^^^^^^^^^^^^^^^
   |
   = note: `PerformanceStats` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis

   Compiling trading-data v0.1.0 (/home/jgrusewski/Work/foxhunt/trading-data)
warning: `tests` (bin "integration_test_runner" test) generated 4 warnings
   Compiling risk v1.0.0 (/home/jgrusewski/Work/foxhunt/risk)
warning: unused variable: `loader`
   --> services/ml_training_service/tests/training_pipeline_tests.rs:253:9
    |
253 |     let loader = HistoricalDataLoader::new(config).await?;
    |         ^^^^^^ help: if this is intentional, prefix it with an underscore: `_loader`
    |
    = note: `#[warn(unused_variables)]` on by default

warning: unused variable: `old_end`
    --> services/ml_training_service/tests/training_pipeline_tests.rs:1783:9
     |
1783 |     let old_end = now - Duration::hours(2);
     |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_old_end`

warning: `ml_training_service` (test "training_pipeline_tests") generated 2 warnings
warning: unused import: `DateTime`
  --> services/ml_training_service/tests/training_pipeline_comprehensive.rs:22:14
   |
22 | use chrono::{DateTime, Utc};
   |              ^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` on by default

warning: unnecessary parentheses around method argument
  --> services/ml_training_service/tests/training_pipeline_comprehensive.rs:83:15
   |
83 |         .bind((4 + (i % 10) as i32))
   |               ^                   ^
   |
   = note: `#[warn(unused_parens)]` on by default
help: remove these parentheses
   |
83 -         .bind((4 + (i % 10) as i32))
83 +         .bind(4 + (i % 10) as i32)
   |

warning: unnecessary parentheses around method argument
   --> services/ml_training_service/tests/training_pipeline_comprehensive.rs:112:15
    |
112 |         .bind((6 + (i % 8) as i32))
    |               ^                  ^
    |
help: remove these parentheses
    |
112 -         .bind((6 + (i % 8) as i32))
112 +         .bind(6 + (i % 8) as i32)
    |

warning: `ml_training_service` (test "training_pipeline_comprehensive") generated 3 warnings (run `cargo fix --test "training_pipeline_comprehensive"` to apply 3 suggestions)
   Compiling ml v1.0.0 (/home/jgrusewski/Work/foxhunt/ml)
error[E0433]: failed to resolve: could not find `mfa` in `auth`
  --> services/api_gateway/tests/mfa_comprehensive.rs:17:24
   |
17 | use api_gateway::auth::mfa::{
   |                        ^^^ could not find `mfa` in `auth`

error[E0433]: failed to resolve: could not find `mfa` in `auth`
   --> services/api_gateway/tests/mfa_comprehensive.rs:325:28
    |
325 |     use api_gateway::auth::mfa::backup_codes::BackupCodeGenerator;
    |                            ^^^ could not find `mfa` in `auth`

warning: unused import: `DateTime`
  --> services/api_gateway/tests/mfa_comprehensive.rs:13:14
   |
13 | use chrono::{DateTime, Duration, Utc};
   |              ^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` on by default

error[E0308]: mismatched types
   --> services/api_gateway/tests/auth_flow_tests.rs:49:9
    |
45  |     Ok(AuthInterceptor::new(
    |        -------------------- arguments to this function are incorrect
...
49  |         rate_limiter,
    |         ^^^^^^^^^^^^ expected `RateLimiter`, found `Result<RateLimiter, String>`
    |
    = note: expected struct `api_gateway::auth::RateLimiter`
                 found enum `Result<api_gateway::auth::RateLimiter, String>`
note: associated function defined here
   --> /home/jgrusewski/Work/foxhunt/services/api_gateway/src/auth/interceptor.rs:505:12
    |
505 |     pub fn new(
    |            ^^^
help: use the `?` operator to extract the `Result<api_gateway::auth::RateLimiter, String>` value, propagating a `Result::Err` value to the caller
    |
49  |         rate_limiter?,
    |                     +

error[E0433]: failed to resolve: could not find `deployment` in `ml`
  --> ml/tests/unsafe_validation_tests.rs:16:9
   |
16 | use ml::deployment::hot_swap::{AtomicModelContainer, HotSwapEngine, HotSwapConfig};
   |         ^^^^^^^^^^ could not find `deployment` in `ml`

warning: unused import: `rust_decimal::Decimal`
  --> services/ml_training_service/tests/normalization_validation.rs:33:5
   |
33 | use rust_decimal::Decimal;
   |     ^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` on by default

warning: unused import: `ml_training_service::schema_types::OrderBookSnapshot`
  --> services/ml_training_service/tests/normalization_validation.rs:39:5
   |
39 | use ml_training_service::schema_types::OrderBookSnapshot;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

error[E0308]: mismatched types
   --> services/api_gateway/tests/mfa_comprehensive.rs:164:36
    |
164 |     let secret = SecretString::new("JBSWY3DPEHPK3PXP".to_string());
    |                  ----------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<str>`, found `String`
    |                  |
    |                  arguments to this function are incorrect
    |
    = note: expected struct `Box<str>`
               found struct `std::string::String`
note: associated function defined here
   --> /home/jgrusewski/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/secrecy-0.10.3/src/lib.rs:84:12
    |
84  |     pub fn new(boxed_secret: Box<S>) -> Self {
    |            ^^^
help: call `Into::into` on this expression to convert `std::string::String` into `Box<str>`
    |
164 |     let secret = SecretString::new("JBSWY3DPEHPK3PXP".to_string().into());
    |                                                                  +++++++

error[E0599]: no method named `check_rate_limit` found for enum `Result` in the current scope
   --> services/api_gateway/tests/rate_limiting_tests.rs:241:25
    |
241 |         if rate_limiter.check_rate_limit("burst_user") {
    |                         ^^^^^^^^^^^^^^^^ method not found in `Result<api_gateway::auth::RateLimiter, String>`
    |
note: the method `check_rate_limit` exists on the type `api_gateway::auth::RateLimiter`
   --> /home/jgrusewski/Work/foxhunt/services/api_gateway/src/auth/interceptor.rs:435:5
    |
435 |     pub fn check_rate_limit(&self, user_id: &str) -> bool {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
help: consider using `Result::expect` to unwrap the `api_gateway::auth::RateLimiter` value, panicking if the value is a `Result::Err`
    |
241 |         if rate_limiter.expect("REASON").check_rate_limit("burst_user") {
    |                        +++++++++++++++++

error[E0308]: mismatched types
    --> services/api_gateway/tests/mfa_comprehensive.rs:1176:36
     |
1176 |     let secret = SecretString::new("JBSWY3DPEHPK3PXP".to_string());
     |                  ----------------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Box<str>`, found `String`
     |                  |
     |                  arguments to this function are incorrect
     |
     = note: expected struct `Box<str>`
                found struct `std::string::String`
note: associated function defined here
    --> /home/jgrusewski/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/secrecy-0.10.3/src/lib.rs:84:12
     |
84   |     pub fn new(boxed_secret: Box<S>) -> Self {
     |            ^^^
help: call `Into::into` on this expression to convert `std::string::String` into `Box<str>`
     |
1176 |     let secret = SecretString::new("JBSWY3DPEHPK3PXP".to_string().into());
     |                                                                  +++++++

For more information about this error, try `rustc --explain E0599`.
error: could not compile `api_gateway` (test "rate_limiting_tests") due to 1 previous error
warning: build failed, waiting for other jobs to finish...
Some errors have detailed explanations: E0308, E0433.
For more information about an error, try `rustc --explain E0308`.
For more information about this error, try `rustc --explain E0308`.
warning: `api_gateway` (test "mfa_comprehensive") generated 1 warning
error: could not compile `api_gateway` (test "mfa_comprehensive") due to 4 previous errors; 1 warning emitted
error: could not compile `api_gateway` (test "auth_flow_tests") due to 1 previous error
error[E0624]: method `fit_normalization` is private
   --> services/ml_training_service/tests/normalization_validation.rs:68:25
    |
68  |       let params = loader.fit_normalization(&training_data);
    |                           ^^^^^^^^^^^^^^^^^ private method
    |
   ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:963:5
    |
963 | /     fn fit_normalization(
964 | |         &self,
965 | |         features_list: &[(FinancialFeatures, Vec<f64>)],
966 | |     ) -> FeatureNormalizationParams {
    | |___________________________________- private method defined here

error[E0624]: method `fit_normalization` is private
   --> services/ml_training_service/tests/normalization_validation.rs:117:25
    |
117 |       let params = loader.fit_normalization(&training_data);
    |                           ^^^^^^^^^^^^^^^^^ private method
    |
   ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:963:5
    |
963 | /     fn fit_normalization(
964 | |         &self,
965 | |         features_list: &[(FinancialFeatures, Vec<f64>)],
966 | |     ) -> FeatureNormalizationParams {
    | |___________________________________- private method defined here

error[E0624]: method `transform_with_params` is private
    --> services/ml_training_service/tests/normalization_validation.rs:123:12
     |
123  |       loader.transform_with_params(&mut training_data, &params);
     |              ^^^^^^^^^^^^^^^^^^^^^ private method
     |
    ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:1070:5
     |
1070 | /     fn transform_with_params(
1071 | |         &self,
1072 | |         features_list: &mut [(FinancialFeatures, Vec<f64>)],
1073 | |         params: &FeatureNormalizationParams,
1074 | |     ) {
     | |_____- private method defined here

error[E0624]: method `transform_with_params` is private
    --> services/ml_training_service/tests/normalization_validation.rs:124:12
     |
124  |       loader.transform_with_params(&mut validation_data, &params);
     |              ^^^^^^^^^^^^^^^^^^^^^ private method
     |
    ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:1070:5
     |
1070 | /     fn transform_with_params(
1071 | |         &self,
1072 | |         features_list: &mut [(FinancialFeatures, Vec<f64>)],
1073 | |         params: &FeatureNormalizationParams,
1074 | |     ) {
     | |_____- private method defined here

error[E0624]: method `fit_normalization` is private
   --> services/ml_training_service/tests/normalization_validation.rs:189:29
    |
189 |           let params = loader.fit_normalization(&training);
    |                               ^^^^^^^^^^^^^^^^^ private method
    |
   ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:963:5
    |
963 | /     fn fit_normalization(
964 | |         &self,
965 | |         features_list: &[(FinancialFeatures, Vec<f64>)],
966 | |     ) -> FeatureNormalizationParams {
    | |___________________________________- private method defined here

error[E0624]: method `fit_normalization` is private
   --> services/ml_training_service/tests/normalization_validation.rs:225:25
    |
225 |       let params = loader.fit_normalization(&empty_training);
    |                           ^^^^^^^^^^^^^^^^^ private method
    |
   ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:963:5
    |
963 | /     fn fit_normalization(
964 | |         &self,
965 | |         features_list: &[(FinancialFeatures, Vec<f64>)],
966 | |     ) -> FeatureNormalizationParams {
    | |___________________________________- private method defined here

error[E0624]: method `transform_with_params` is private
    --> services/ml_training_service/tests/normalization_validation.rs:233:12
     |
233  |       loader.transform_with_params(&mut empty_validation, &params);
     |              ^^^^^^^^^^^^^^^^^^^^^ private method
     |
    ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:1070:5
     |
1070 | /     fn transform_with_params(
1071 | |         &self,
1072 | |         features_list: &mut [(FinancialFeatures, Vec<f64>)],
1073 | |         params: &FeatureNormalizationParams,
1074 | |     ) {
     | |_____- private method defined here

error[E0624]: method `fit_normalization` is private
   --> services/ml_training_service/tests/normalization_validation.rs:249:25
    |
249 |       let params = loader.fit_normalization(&training_data);
    |                           ^^^^^^^^^^^^^^^^^ private method
    |
   ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:963:5
    |
963 | /     fn fit_normalization(
964 | |         &self,
965 | |         features_list: &[(FinancialFeatures, Vec<f64>)],
966 | |     ) -> FeatureNormalizationParams {
    | |___________________________________- private method defined here

error[E0624]: method `transform_with_params` is private
    --> services/ml_training_service/tests/normalization_validation.rs:257:12
     |
257  |       loader.transform_with_params(&mut test_data, &params);
     |              ^^^^^^^^^^^^^^^^^^^^^ private method
     |
    ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:1070:5
     |
1070 | /     fn transform_with_params(
1071 | |         &self,
1072 | |         features_list: &mut [(FinancialFeatures, Vec<f64>)],
1073 | |         params: &FeatureNormalizationParams,
1074 | |     ) {
     | |_____- private method defined here

error[E0624]: method `fit_normalization` is private
   --> services/ml_training_service/tests/normalization_validation.rs:277:25
    |
277 |       let params = loader.fit_normalization(&training_data);
    |                           ^^^^^^^^^^^^^^^^^ private method
    |
   ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:963:5
    |
963 | /     fn fit_normalization(
964 | |         &self,
965 | |         features_list: &[(FinancialFeatures, Vec<f64>)],
966 | |     ) -> FeatureNormalizationParams {
    | |___________________________________- private method defined here

error[E0624]: method `transform_with_params` is private
    --> services/ml_training_service/tests/normalization_validation.rs:287:12
     |
287  |       loader.transform_with_params(&mut test_data, &params);
     |              ^^^^^^^^^^^^^^^^^^^^^ private method
     |
    ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:1070:5
     |
1070 | /     fn transform_with_params(
1071 | |         &self,
1072 | |         features_list: &mut [(FinancialFeatures, Vec<f64>)],
1073 | |         params: &FeatureNormalizationParams,
1074 | |     ) {
     | |_____- private method defined here

error[E0624]: method `fit_normalization` is private
   --> services/ml_training_service/tests/normalization_validation.rs:316:31
    |
316 |       let leaky_params = loader.fit_normalization(&validation_old);
    |                                 ^^^^^^^^^^^^^^^^^ private method
    |
   ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:963:5
    |
963 | /     fn fit_normalization(
964 | |         &self,
965 | |         features_list: &[(FinancialFeatures, Vec<f64>)],
966 | |     ) -> FeatureNormalizationParams {
    | |___________________________________- private method defined here

error[E0624]: method `transform_with_params` is private
    --> services/ml_training_service/tests/normalization_validation.rs:317:12
     |
317  |       loader.transform_with_params(&mut validation_old, &leaky_params);
     |              ^^^^^^^^^^^^^^^^^^^^^ private method
     |
    ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:1070:5
     |
1070 | /     fn transform_with_params(
1071 | |         &self,
1072 | |         features_list: &mut [(FinancialFeatures, Vec<f64>)],
1073 | |         params: &FeatureNormalizationParams,
1074 | |     ) {
     | |_____- private method defined here

error[E0624]: method `fit_normalization` is private
   --> services/ml_training_service/tests/normalization_validation.rs:321:33
    |
321 |       let correct_params = loader.fit_normalization(&training_data);
    |                                   ^^^^^^^^^^^^^^^^^ private method
    |
   ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:963:5
    |
963 | /     fn fit_normalization(
964 | |         &self,
965 | |         features_list: &[(FinancialFeatures, Vec<f64>)],
966 | |     ) -> FeatureNormalizationParams {
    | |___________________________________- private method defined here

error[E0624]: method `transform_with_params` is private
    --> services/ml_training_service/tests/normalization_validation.rs:322:12
     |
322  |       loader.transform_with_params(&mut validation_new, &correct_params);
     |              ^^^^^^^^^^^^^^^^^^^^^ private method
     |
    ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:1070:5
     |
1070 | /     fn transform_with_params(
1071 | |         &self,
1072 | |         features_list: &mut [(FinancialFeatures, Vec<f64>)],
1073 | |         params: &FeatureNormalizationParams,
1074 | |     ) {
     | |_____- private method defined here

error[E0624]: method `fit_normalization` is private
   --> services/ml_training_service/tests/normalization_validation.rs:350:25
    |
350 |       let params = loader.fit_normalization(&training_data);
    |                           ^^^^^^^^^^^^^^^^^ private method
    |
   ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:963:5
    |
963 | /     fn fit_normalization(
964 | |         &self,
965 | |         features_list: &[(FinancialFeatures, Vec<f64>)],
966 | |     ) -> FeatureNormalizationParams {
    | |___________________________________- private method defined here

error[E0624]: method `transform_with_params` is private
    --> services/ml_training_service/tests/normalization_validation.rs:354:12
     |
354  |       loader.transform_with_params(&mut prod_normalized, &params);
     |              ^^^^^^^^^^^^^^^^^^^^^ private method
     |
    ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:1070:5
     |
1070 | /     fn transform_with_params(
1071 | |         &self,
1072 | |         features_list: &mut [(FinancialFeatures, Vec<f64>)],
1073 | |         params: &FeatureNormalizationParams,
1074 | |     ) {
     | |_____- private method defined here

error[E0624]: method `fit_normalization` is private
   --> services/ml_training_service/tests/normalization_validation.rs:386:25
    |
386 |       let params = loader.fit_normalization(&training_data);
    |                           ^^^^^^^^^^^^^^^^^ private method
    |
   ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:963:5
    |
963 | /     fn fit_normalization(
964 | |         &self,
965 | |         features_list: &[(FinancialFeatures, Vec<f64>)],
966 | |     ) -> FeatureNormalizationParams {
    | |___________________________________- private method defined here

error[E0624]: method `transform_with_params` is private
    --> services/ml_training_service/tests/normalization_validation.rs:392:12
     |
392  |       loader.transform_with_params(&mut easy_norm, &params);
     |              ^^^^^^^^^^^^^^^^^^^^^ private method
     |
    ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:1070:5
     |
1070 | /     fn transform_with_params(
1071 | |         &self,
1072 | |         features_list: &mut [(FinancialFeatures, Vec<f64>)],
1073 | |         params: &FeatureNormalizationParams,
1074 | |     ) {
     | |_____- private method defined here

error[E0624]: method `transform_with_params` is private
    --> services/ml_training_service/tests/normalization_validation.rs:393:12
     |
393  |       loader.transform_with_params(&mut hard_norm, &params);
     |              ^^^^^^^^^^^^^^^^^^^^^ private method
     |
    ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:1070:5
     |
1070 | /     fn transform_with_params(
1071 | |         &self,
1072 | |         features_list: &mut [(FinancialFeatures, Vec<f64>)],
1073 | |         params: &FeatureNormalizationParams,
1074 | |     ) {
     | |_____- private method defined here

error[E0624]: method `fit_normalization` is private
   --> services/ml_training_service/tests/normalization_validation.rs:418:25
    |
418 |       let params = loader.fit_normalization(&training_data);
    |                           ^^^^^^^^^^^^^^^^^ private method
    |
   ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:963:5
    |
963 | /     fn fit_normalization(
964 | |         &self,
965 | |         features_list: &[(FinancialFeatures, Vec<f64>)],
966 | |     ) -> FeatureNormalizationParams {
    | |___________________________________- private method defined here

error[E0624]: method `transform_with_params` is private
    --> services/ml_training_service/tests/normalization_validation.rs:424:12
     |
424  |       loader.transform_with_params(&mut train_norm, &params);
     |              ^^^^^^^^^^^^^^^^^^^^^ private method
     |
    ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:1070:5
     |
1070 | /     fn transform_with_params(
1071 | |         &self,
1072 | |         features_list: &mut [(FinancialFeatures, Vec<f64>)],
1073 | |         params: &FeatureNormalizationParams,
1074 | |     ) {
     | |_____- private method defined here

error[E0624]: method `transform_with_params` is private
    --> services/ml_training_service/tests/normalization_validation.rs:425:12
     |
425  |       loader.transform_with_params(&mut val_norm, &params);
     |              ^^^^^^^^^^^^^^^^^^^^^ private method
     |
    ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:1070:5
     |
1070 | /     fn transform_with_params(
1071 | |         &self,
1072 | |         features_list: &mut [(FinancialFeatures, Vec<f64>)],
1073 | |         params: &FeatureNormalizationParams,
1074 | |     ) {
     | |_____- private method defined here

error[E0624]: method `fit_normalization` is private
   --> services/ml_training_service/tests/normalization_validation.rs:463:25
    |
463 |       let params = loader.fit_normalization(&training_data);
    |                           ^^^^^^^^^^^^^^^^^ private method
    |
   ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:963:5
    |
963 | /     fn fit_normalization(
964 | |         &self,
965 | |         features_list: &[(FinancialFeatures, Vec<f64>)],
966 | |     ) -> FeatureNormalizationParams {
    | |___________________________________- private method defined here

error[E0624]: method `transform_with_params` is private
    --> services/ml_training_service/tests/normalization_validation.rs:469:12
     |
469  |       loader.transform_with_params(&mut val_norm, &params);
     |              ^^^^^^^^^^^^^^^^^^^^^ private method
     |
    ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:1070:5
     |
1070 | /     fn transform_with_params(
1071 | |         &self,
1072 | |         features_list: &mut [(FinancialFeatures, Vec<f64>)],
1073 | |         params: &FeatureNormalizationParams,
1074 | |     ) {
     | |_____- private method defined here

error[E0624]: method `transform_with_params` is private
    --> services/ml_training_service/tests/normalization_validation.rs:470:12
     |
470  |       loader.transform_with_params(&mut prod_norm, &params);
     |              ^^^^^^^^^^^^^^^^^^^^^ private method
     |
    ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:1070:5
     |
1070 | /     fn transform_with_params(
1071 | |         &self,
1072 | |         features_list: &mut [(FinancialFeatures, Vec<f64>)],
1073 | |         params: &FeatureNormalizationParams,
1074 | |     ) {
     | |_____- private method defined here

error[E0624]: method `fit_normalization` is private
   --> services/ml_training_service/tests/normalization_validation.rs:504:25
    |
504 |       let params = loader.fit_normalization(&training_data);
    |                           ^^^^^^^^^^^^^^^^^ private method
    |
   ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:963:5
    |
963 | /     fn fit_normalization(
964 | |         &self,
965 | |         features_list: &[(FinancialFeatures, Vec<f64>)],
966 | |     ) -> FeatureNormalizationParams {
    | |___________________________________- private method defined here

error[E0624]: method `fit_normalization` is private
   --> services/ml_training_service/tests/normalization_validation.rs:532:25
    |
532 |       let params = loader.fit_normalization(&training_data);
    |                           ^^^^^^^^^^^^^^^^^ private method
    |
   ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:963:5
    |
963 | /     fn fit_normalization(
964 | |         &self,
965 | |         features_list: &[(FinancialFeatures, Vec<f64>)],
966 | |     ) -> FeatureNormalizationParams {
    | |___________________________________- private method defined here

error[E0624]: method `fit_normalization` is private
   --> services/ml_training_service/tests/normalization_validation.rs:564:25
    |
564 |       let params = loader.fit_normalization(&features);
    |                           ^^^^^^^^^^^^^^^^^ private method
    |
   ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:963:5
    |
963 | /     fn fit_normalization(
964 | |         &self,
965 | |         features_list: &[(FinancialFeatures, Vec<f64>)],
966 | |     ) -> FeatureNormalizationParams {
    | |___________________________________- private method defined here

error[E0624]: method `fit_normalization` is private
   --> services/ml_training_service/tests/normalization_validation.rs:599:25
    |
599 |       let params = loader.fit_normalization(&training_data);
    |                           ^^^^^^^^^^^^^^^^^ private method
    |
   ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:963:5
    |
963 | /     fn fit_normalization(
964 | |         &self,
965 | |         features_list: &[(FinancialFeatures, Vec<f64>)],
966 | |     ) -> FeatureNormalizationParams {
    | |___________________________________- private method defined here

error[E0624]: method `transform_with_params` is private
    --> services/ml_training_service/tests/normalization_validation.rs:606:12
     |
606  |       loader.transform_with_params(&mut data1, &params);
     |              ^^^^^^^^^^^^^^^^^^^^^ private method
     |
    ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:1070:5
     |
1070 | /     fn transform_with_params(
1071 | |         &self,
1072 | |         features_list: &mut [(FinancialFeatures, Vec<f64>)],
1073 | |         params: &FeatureNormalizationParams,
1074 | |     ) {
     | |_____- private method defined here

Some errors have detailed explanations: E0308, E0599.
error[E0624]: method `transform_with_params` is private
    --> services/ml_training_service/tests/normalization_validation.rs:607:12
     |
607  |       loader.transform_with_params(&mut data2, &params);
     |              ^^^^^^^^^^^^^^^^^^^^^ private method
     |
    ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:1070:5
     |
1070 | /     fn transform_with_params(
1071 | |         &self,
1072 | |         features_list: &mut [(FinancialFeatures, Vec<f64>)],
1073 | |         params: &FeatureNormalizationParams,
1074 | |     ) {
     | |_____- private method defined here

error[E0624]: method `transform_with_params` is private
    --> services/ml_training_service/tests/normalization_validation.rs:608:12
     |
608  |       loader.transform_with_params(&mut data3, &params);
     |              ^^^^^^^^^^^^^^^^^^^^^ private method
     |
    ::: /home/jgrusewski/Work/foxhunt/services/ml_training_service/src/data_loader.rs:1070:5
     |
1070 | /     fn transform_with_params(
1071 | |         &self,
1072 | |         features_list: &mut [(FinancialFeatures, Vec<f64>)],
1073 | |         params: &FeatureNormalizationParams,
1074 | |     ) {
     | |_____- private method defined here

error: could not compile `api_gateway` (test "integration_tests") due to 2 previous errors
error[E0432]: unresolved import `ml::ModelVersion`
  --> ml/tests/unsafe_validation_tests.rs:18:21
   |
18 | use ml::{ModelType, ModelVersion, MLError};
   |                     ^^^^^^^^^^^^ no `ModelVersion` in the root
   |
   = help: consider importing one of these structs instead:
           ml::common::ModelVersion
           storage::model_helpers::ModelVersion

error[E0433]: failed to resolve: could not find `model_factory` in `ml`
  --> ml/tests/unsafe_validation_tests.rs:29:22
   |
29 |     let model1 = ml::model_factory::create_dqn_wrapper().unwrap();
   |                      ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

error[E0433]: failed to resolve: could not find `model_factory` in `ml`
  --> ml/tests/unsafe_validation_tests.rs:41:22
   |
41 |     let model2 = ml::model_factory::create_dqn_wrapper().unwrap();
   |                      ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

error[E0433]: failed to resolve: could not find `model_factory` in `ml`
  --> ml/tests/unsafe_validation_tests.rs:67:22
   |
67 |     let model1 = ml::model_factory::create_dqn_wrapper().unwrap();
   |                      ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

error[E0433]: failed to resolve: could not find `model_factory` in `ml`
  --> ml/tests/unsafe_validation_tests.rs:80:25
   |
80 |         let model = ml::model_factory::create_dqn_wrapper().unwrap();
   |                         ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

error[E0308]: mismatched types
   --> services/ml_training_service/tests/normalization_validation.rs:672:33
    |
672 |                     spread_bps: spread as u16,
    |                                 ^^^^^^^^^^^^^ expected `i32`, found `u16`

error[E0433]: failed to resolve: could not find `model_factory` in `ml`
  --> ml/tests/unsafe_validation_tests.rs:89:25
   |
89 |         let model = ml::model_factory::create_dqn_wrapper().unwrap();
   |                         ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

error[E0308]: mismatched types
   --> services/ml_training_service/tests/normalization_validation.rs:704:33
    |
704 |                     spread_bps: value as u16,
    |                                 ^^^^^^^^^^^^ expected `i32`, found `u16`

error[E0433]: failed to resolve: could not find `model_factory` in `ml`
   --> ml/tests/unsafe_validation_tests.rs:110:22
    |
110 |     let model1 = ml::model_factory::create_dqn_wrapper().unwrap();
    |                      ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

error[E0308]: mismatched types
   --> services/ml_training_service/tests/normalization_validation.rs:733:25
    |
733 |             spread_bps: spread as u16,
    |                         ^^^^^^^^^^^^^ expected `i32`, found `u16`

error[E0433]: failed to resolve: could not find `model_factory` in `ml`
   --> ml/tests/unsafe_validation_tests.rs:119:22
    |
119 |     let model2 = ml::model_factory::create_dqn_wrapper().unwrap();
    |                      ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

error[E0433]: failed to resolve: could not find `model_factory` in `ml`
   --> ml/tests/unsafe_validation_tests.rs:151:22
    |
151 |     let model1 = ml::model_factory::create_dqn_wrapper().unwrap();
    |                      ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

Some errors have detailed explanations: E0308, E0624.
error[E0433]: failed to resolve: could not find `model_factory` in `ml`
   --> ml/tests/unsafe_validation_tests.rs:163:22
    |
163 |     let model2 = ml::model_factory::create_dqn_wrapper().unwrap();
    |                      ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

warning: `ml_training_service` (test "normalization_validation") generated 2 warnings
error: could not compile `ml_training_service` (test "normalization_validation") due to 36 previous errors; 2 warnings emitted
error[E0433]: failed to resolve: could not find `model_factory` in `ml`
   --> ml/tests/unsafe_validation_tests.rs:186:22
    |
186 |     let model1 = ml::model_factory::create_dqn_wrapper().unwrap();
    |                      ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

error[E0433]: failed to resolve: could not find `model_factory` in `ml`
   --> ml/tests/unsafe_validation_tests.rs:212:22
    |
212 |     let model1 = ml::model_factory::create_dqn_wrapper().unwrap();
    |                      ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

error[E0433]: failed to resolve: could not find `model_factory` in `ml`
   --> ml/tests/unsafe_validation_tests.rs:221:22
    |
221 |     let model2 = ml::model_factory::create_dqn_wrapper().unwrap();
    |                      ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

error[E0433]: failed to resolve: could not find `model_factory` in `ml`
   --> ml/tests/unsafe_validation_tests.rs:239:22
    |
239 |     let model1 = ml::model_factory::create_dqn_wrapper().unwrap();
    |                      ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

error[E0433]: failed to resolve: could not find `model_factory` in `ml`
   --> ml/tests/unsafe_validation_tests.rs:265:29
    |
265 |             let model = ml::model_factory::create_dqn_wrapper().unwrap();
    |                             ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

error[E0433]: failed to resolve: could not find `model_factory` in `ml`
   --> ml/tests/unsafe_validation_tests.rs:439:25
    |
439 |     let model_dqn = ml::model_factory::create_dqn_wrapper().unwrap();
    |                         ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

error[E0433]: failed to resolve: could not find `model_factory` in `ml`
   --> ml/tests/unsafe_validation_tests.rs:449:29
    |
449 |     let new_model_dqn = ml::model_factory::create_dqn_wrapper().unwrap();
    |                             ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

error[E0433]: failed to resolve: could not find `model_factory` in `ml`
   --> ml/tests/unsafe_validation_tests.rs:466:22
    |
466 |     let model1 = ml::model_factory::create_dqn_wrapper().unwrap();
    |                      ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

error[E0433]: failed to resolve: could not find `model_factory` in `ml`
   --> ml/tests/unsafe_validation_tests.rs:478:25
    |
478 |         let model = ml::model_factory::create_dqn_wrapper().unwrap();
    |                         ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

error[E0433]: failed to resolve: could not find `model_factory` in `ml`
   --> ml/tests/unsafe_validation_tests.rs:543:25
    |
543 |         let model = ml::model_factory::create_dqn_wrapper().unwrap();
    |                         ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

error[E0433]: failed to resolve: could not find `model_factory` in `ml`
   --> ml/tests/unsafe_validation_tests.rs:586:25
    |
586 |         let model = ml::model_factory::create_dqn_wrapper().unwrap();
    |                         ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

error[E0433]: failed to resolve: could not find `model_factory` in `ml`
   --> ml/tests/unsafe_validation_tests.rs:605:37
    |
605 |                     let model = ml::model_factory::create_dqn_wrapper().unwrap();
    |                                     ^^^^^^^^^^^^^ could not find `model_factory` in `ml`

warning: extern crate `anyhow` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use anyhow as _;` to the crate root
  = note: requested on the command line with `-W unused-crate-dependencies`

warning: extern crate `approx` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use approx as _;` to the crate root

warning: extern crate `arrayfire` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use arrayfire as _;` to the crate root

warning: extern crate `async_trait` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use async_trait as _;` to the crate root

warning: extern crate `aws_config` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use aws_config as _;` to the crate root

warning: extern crate `aws_credential_types` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use aws_credential_types as _;` to the crate root

warning: extern crate `aws_sdk_s3` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use aws_sdk_s3 as _;` to the crate root

warning: extern crate `aws_types` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use aws_types as _;` to the crate root

warning: extern crate `bincode` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use bincode as _;` to the crate root

warning: extern crate `candle_core` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use candle_core as _;` to the crate root

warning: extern crate `candle_nn` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use candle_nn as _;` to the crate root

warning: extern crate `candle_optimisers` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use candle_optimisers as _;` to the crate root

warning: extern crate `chrono` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use chrono as _;` to the crate root

warning: extern crate `common` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use common as _;` to the crate root

warning: extern crate `config` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use config as _;` to the crate root

warning: extern crate `criterion` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use criterion as _;` to the crate root

warning: extern crate `crossbeam` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use crossbeam as _;` to the crate root

warning: extern crate `dashmap` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use dashmap as _;` to the crate root

warning: extern crate `fastrand` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use fastrand as _;` to the crate root

warning: extern crate `flate2` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use flate2 as _;` to the crate root

warning: extern crate `fs2` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use fs2 as _;` to the crate root

warning: extern crate `futures` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use futures as _;` to the crate root

warning: extern crate `futures_test` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use futures_test as _;` to the crate root

warning: extern crate `half` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use half as _;` to the crate root

warning: extern crate `insta` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use insta as _;` to the crate root

warning: extern crate `lazy_static` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use lazy_static as _;` to the crate root

warning: extern crate `libc` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use libc as _;` to the crate root

warning: extern crate `lru` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use lru as _;` to the crate root

warning: extern crate `memmap2` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use memmap2 as _;` to the crate root

warning: extern crate `mockall` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use mockall as _;` to the crate root

warning: extern crate `nalgebra` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use nalgebra as _;` to the crate root

warning: extern crate `ndarray` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use ndarray as _;` to the crate root

warning: extern crate `num` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use num as _;` to the crate root

warning: extern crate `num_cpus` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use num_cpus as _;` to the crate root

warning: extern crate `num_traits` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use num_traits as _;` to the crate root

warning: extern crate `once_cell` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use once_cell as _;` to the crate root

warning: extern crate `parking_lot` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use parking_lot as _;` to the crate root

warning: extern crate `petgraph` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use petgraph as _;` to the crate root

warning: extern crate `prometheus` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use prometheus as _;` to the crate root

warning: extern crate `proptest` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use proptest as _;` to the crate root

warning: extern crate `rand` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use rand as _;` to the crate root

warning: extern crate `rand_distr` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use rand_distr as _;` to the crate root

warning: extern crate `rayon` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use rayon as _;` to the crate root

warning: extern crate `reqwest` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use reqwest as _;` to the crate root

warning: extern crate `risk` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use risk as _;` to the crate root

warning: extern crate `rstest` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use rstest as _;` to the crate root

warning: extern crate `rust_decimal` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use rust_decimal as _;` to the crate root

warning: extern crate `semver` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use semver as _;` to the crate root

warning: extern crate `serde` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use serde as _;` to the crate root

warning: extern crate `serde_json` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use serde_json as _;` to the crate root

warning: extern crate `serial_test` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use serial_test as _;` to the crate root

warning: extern crate `sha2` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use sha2 as _;` to the crate root

warning: extern crate `statrs` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use statrs as _;` to the crate root

warning: extern crate `storage` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use storage as _;` to the crate root

warning: extern crate `sysinfo` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use sysinfo as _;` to the crate root

warning: extern crate `tempfile` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use tempfile as _;` to the crate root

warning: extern crate `test_case` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use test_case as _;` to the crate root

warning: extern crate `thiserror` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use thiserror as _;` to the crate root

warning: extern crate `tokio_test` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use tokio_test as _;` to the crate root

warning: extern crate `tracing` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use tracing as _;` to the crate root

warning: extern crate `tracing_subscriber` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use tracing_subscriber as _;` to the crate root

warning: extern crate `trading_engine` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use trading_engine as _;` to the crate root

warning: extern crate `urlencoding` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use urlencoding as _;` to the crate root

warning: extern crate `uuid` is unused in crate `unsafe_validation_tests`
  |
  = help: remove the dependency or add `use uuid as _;` to the crate root

warning: usage of an `unsafe` block
   --> ml/tests/unsafe_validation_tests.rs:303:5
    |
303 | /     unsafe {
304 | |         let slice_mut = buffer.as_mut_slice();
305 | |         for i in 0..slice_mut.len() {
306 | |             slice_mut[i] = i as f64;
307 | |         }
308 | |     }
    | |_____^
    |
    = note: requested on the command line with `-W unsafe-code`

warning: usage of an `unsafe` block
   --> ml/tests/unsafe_validation_tests.rs:311:5
    |
311 | /     unsafe {
312 | |         let slice = buffer.as_slice();
313 | |         assert_eq!(slice.len(), 512);
314 | |         assert_eq!(slice[0], 0.0);
315 | |         assert_eq!(slice[511], 511.0);
316 | |     }
    | |_____^

warning: usage of an `unsafe` block
   --> ml/tests/unsafe_validation_tests.rs:331:5
    |
331 | /     unsafe {
332 | |         let slice_mut = buffer.as_mut_slice();
333 | |         assert_eq!(slice_mut.len(), 256);
...   |
338 | |     }
    | |_____^

warning: usage of an `unsafe` block
   --> ml/tests/unsafe_validation_tests.rs:341:5
    |
341 | /     unsafe {
342 | |         let slice = buffer.as_slice();
343 | |         assert_eq!(slice[0], 0.0);
344 | |         assert_eq!(slice[128], 256.0);
345 | |         assert_eq!(slice[255], 510.0);
346 | |     }
    | |_____^

warning: usage of an `unsafe` block
   --> ml/tests/unsafe_validation_tests.rs:359:5
    |
359 | /     unsafe {
360 | |         let slice_mut = buffer1.as_mut_slice();
361 | |         for i in 0..slice_mut.len() {
362 | |             slice_mut[i] = i as f64;
363 | |         }
364 | |     }
    | |_____^

warning: usage of an `unsafe` block
   --> ml/tests/unsafe_validation_tests.rs:374:5
    |
374 | /     unsafe {
375 | |         let slice_mut = buffer2.as_mut_slice();
376 | |         for i in 0..slice_mut.len() {
377 | |             slice_mut[i] = (i * 3) as f64;
378 | |         }
379 | |     }
    | |_____^

warning: usage of an `unsafe` block
   --> ml/tests/unsafe_validation_tests.rs:382:5
    |
382 | /     unsafe {
383 | |         let slice = buffer2.as_slice();
384 | |         assert_eq!(slice[0], 0.0);
385 | |         assert_eq!(slice[100], 300.0);
386 | |     }
    | |_____^

warning: usage of an `unsafe` block
   --> ml/tests/unsafe_validation_tests.rs:404:5
    |
404 | /     unsafe {
405 | |         let slice = buffer.as_slice();
406 | |         assert_eq!(slice.len(), 128);
407 | |     }
    | |_____^

warning: usage of an `unsafe` block
   --> ml/tests/unsafe_validation_tests.rs:513:9
    |
513 | /         unsafe {
514 | |             let slice_mut = buffer.as_mut_slice();
515 | |             for i in 0..slice_mut.len() {
516 | |                 slice_mut[i] = (batch_idx * 1000 + i) as f64;
...   |
522 | |             assert_eq!(slice[0], (batch_idx * 1000) as f64);
523 | |         }
    | |_________^

warning: usage of an `unsafe` block
   --> ml/tests/unsafe_validation_tests.rs:564:9
    |
564 | /         unsafe {
565 | |             let slice_mut = buffer.as_mut_slice();
566 | |             for i in 0..128 {
567 | |                 slice_mut[i] = i as f64;
...   |
570 | |         }
    | |_________^

warning: usage of an `unsafe` block
   --> ml/tests/unsafe_validation_tests.rs:573:9
    |
573 | /         unsafe {
574 | |             let slice = buffer.as_slice();
575 | |             assert_eq!(slice[0], 0.0);
576 | |             assert_eq!(slice[127], 127.0);
577 | |         }
    | |_________^

error[E0282]: type annotations needed for `std::sync::Arc<_, _>`
  --> ml/tests/unsafe_validation_tests.rs:30:9
   |
30 |     let model1_arc = Arc::from(model1);
   |         ^^^^^^^^^^
...
34 |         model1_arc.clone(),
   |                    ----- type must be known at this point
   |
help: consider giving `model1_arc` an explicit type, where the type for type parameter `T` is specified
   |
30 |     let model1_arc: std::sync::Arc<T, A> = Arc::from(model1);
   |                   ++++++++++++++++++++++

error[E0282]: type annotations needed for `std::sync::Arc<_, _>`
  --> ml/tests/unsafe_validation_tests.rs:76:9
   |
76 |     let container_clone1 = Arc::clone(&container);
   |         ^^^^^^^^^^^^^^^^
...
81 |         container_clone1.swap_model(
   |                          ---------- type must be known at this point
   |
help: consider giving `container_clone1` an explicit type, where the type for type parameter `T` is specified
   |
76 |     let container_clone1: std::sync::Arc<T, A> = Arc::clone(&container);
   |                         ++++++++++++++++++++++

error[E0282]: type annotations needed for `std::sync::Arc<_, _>`
  --> ml/tests/unsafe_validation_tests.rs:77:9
   |
77 |     let container_clone2 = Arc::clone(&container);
   |         ^^^^^^^^^^^^^^^^
...
90 |         container_clone2.swap_model(
   |                          ---------- type must be known at this point
   |
help: consider giving `container_clone2` an explicit type, where the type for type parameter `T` is specified
   |
77 |     let container_clone2: std::sync::Arc<T, A> = Arc::clone(&container);
   |                         ++++++++++++++++++++++

error[E0282]: type annotations needed for `std::sync::Arc<_, _>`
   --> ml/tests/unsafe_validation_tests.rs:127:9
    |
127 |     let container_clone1 = Arc::clone(&container);
    |         ^^^^^^^^^^^^^^^^
...
131 |         container_clone1.rollback(Duration::from_secs(15)).await
    |                          -------- type must be known at this point
    |
help: consider giving `container_clone1` an explicit type, where the type for type parameter `T` is specified
    |
127 |     let container_clone1: std::sync::Arc<T, A> = Arc::clone(&container);
    |                         ++++++++++++++++++++++

error[E0282]: type annotations needed for `std::sync::Arc<_, _>`
   --> ml/tests/unsafe_validation_tests.rs:128:9
    |
128 |     let container_clone2 = Arc::clone(&container);
    |         ^^^^^^^^^^^^^^^^
...
135 |         container_clone2.rollback(Duration::from_secs(15)).await
    |                          -------- type must be known at this point
    |
help: consider giving `container_clone2` an explicit type, where the type for type parameter `T` is specified
    |
128 |     let container_clone2: std::sync::Arc<T, A> = Arc::clone(&container);
    |                         ++++++++++++++++++++++

error[E0282]: type annotations needed for `std::sync::Arc<_, _>`
   --> ml/tests/unsafe_validation_tests.rs:152:9
    |
152 |     let model1_arc = Arc::from(model1);
    |         ^^^^^^^^^^
...
156 |         model1_arc.clone(),
    |                    ----- type must be known at this point
    |
help: consider giving `model1_arc` an explicit type, where the type for type parameter `T` is specified
    |
152 |     let model1_arc: std::sync::Arc<T, A> = Arc::from(model1);
    |                   ++++++++++++++++++++++

error[E0282]: type annotations needed for `std::sync::Arc<_, _>`
   --> ml/tests/unsafe_validation_tests.rs:250:13
    |
250 |         let container_clone = Arc::clone(&container);
    |             ^^^^^^^^^^^^^^^
...
253 |                 let _ = container_clone.get_current_model().await;
    |                                         ----------------- type must be known at this point
    |
help: consider giving `container_clone` an explicit type, where the type for type parameter `T` is specified
    |
250 |         let container_clone: std::sync::Arc<T, A> = Arc::clone(&container);
    |                            ++++++++++++++++++++++

error[E0282]: type annotations needed for `std::sync::Arc<_, _>`
   --> ml/tests/unsafe_validation_tests.rs:263:13
    |
263 |         let container_clone = Arc::clone(&container);
    |             ^^^^^^^^^^^^^^^
...
267 |             container_clone.swap_model(
    |                             ---------- type must be known at this point
    |
help: consider giving `container_clone` an explicit type, where the type for type parameter `T` is specified
    |
263 |         let container_clone: std::sync::Arc<T, A> = Arc::clone(&container);
    |                            ++++++++++++++++++++++

error[E0282]: type annotations needed for `std::sync::Arc<_, _>`
   --> ml/tests/unsafe_validation_tests.rs:598:17
    |
598 |             let container_clone = Arc::clone(&container);
    |                 ^^^^^^^^^^^^^^^
...
602 |                     let _ = container_clone.get_current_model().await;
    |                                             ----------------- type must be known at this point
    |
help: consider giving `container_clone` an explicit type, where the type for type parameter `T` is specified
    |
598 |             let container_clone: std::sync::Arc<T, A> = Arc::clone(&container);
    |                                ++++++++++++++++++++++

Some errors have detailed explanations: E0282, E0432, E0433.
For more information about an error, try `rustc --explain E0282`.
warning: `ml` (test "unsafe_validation_tests") generated 75 warnings
error: could not compile `ml` (test "unsafe_validation_tests") due to 32 previous errors; 75 warnings emitted
warning: `ml_training_service` (lib test) generated 1 warning (1 duplicate)
