@@ -22,7 +22,7 @@ use crate::{
2222 AccountEndpoint , ActivityId , CosmosOperation , CosmosResponse , CosmosResponseHeaders ,
2323 Credential , SubStatusCode ,
2424 } ,
25- options:: { OperationOptions , RuntimeOptions } ,
25+ options:: { OperationOptions , RuntimeOptionsView } ,
2626} ;
2727
2828use super :: {
@@ -46,7 +46,7 @@ use crate::driver::transport::{
4646pub ( crate ) async fn execute_operation_pipeline (
4747 operation : & CosmosOperation ,
4848 _options : & OperationOptions ,
49- effective_options : & RuntimeOptions ,
49+ effective_options : & RuntimeOptionsView < ' _ > ,
5050 location_state_store : & LocationStateStore ,
5151 transport : & CosmosTransport ,
5252 account_endpoint : & AccountEndpoint ,
@@ -59,9 +59,10 @@ pub(crate) async fn execute_operation_pipeline(
5959) -> azure_core:: Result < CosmosResponse > {
6060 let mut diagnostics = diagnostics;
6161 let location_snapshot = location_state_store. snapshot ( ) ;
62- let max_failover_retries = effective_options. max_failover_retry_count . unwrap_or ( 3 ) ;
62+ let max_failover_retries = effective_options. max_failover_retry_count ( ) . copied ( ) . unwrap_or ( 3 ) ;
6363 let max_session_retries = effective_options
64- . max_session_retry_count
64+ . max_session_retry_count ( )
65+ . copied ( )
6566 . unwrap_or_else ( || {
6667 // Java SDK parity: 2 for single-write, endpoints.len() for multi-write.
6768 // Uses the original endpoint count (before unavailability filtering).
@@ -80,17 +81,15 @@ pub(crate) async fn execute_operation_pipeline(
8081 location_snapshot. account . generation ,
8182 location_snapshot. account . multiple_write_locations_enabled ,
8283 effective_options
83- . excluded_regions
84- . as_ref ( )
84+ . excluded_regions ( )
8585 . map ( |r| r. 0 . clone ( ) )
8686 . unwrap_or_default ( ) ,
8787 max_failover_retries,
8888 max_session_retries,
8989 ) ;
9090
9191 let deadline = effective_options
92- . end_to_end_latency_policy
93- . as_ref ( )
92+ . end_to_end_latency_policy ( )
9493 . map ( |p| Instant :: now ( ) + p. timeout ( ) ) ;
9594
9695 let mut attempt = 0 ;
@@ -195,8 +194,7 @@ pub(crate) async fn execute_operation_pipeline(
195194 if let Some ( d) = deadline {
196195 if Instant :: now ( ) >= d {
197196 let timeout_duration = effective_options
198- . end_to_end_latency_policy
199- . as_ref ( )
197+ . end_to_end_latency_policy ( )
200198 . map ( |p| p. timeout ( ) )
201199 . unwrap_or_default ( ) ;
202200
@@ -226,8 +224,7 @@ pub(crate) async fn execute_operation_pipeline(
226224 if let Some ( d) = deadline {
227225 if Instant :: now ( ) >= d {
228226 let timeout_duration = effective_options
229- . end_to_end_latency_policy
230- . as_ref ( )
227+ . end_to_end_latency_policy ( )
231228 . map ( |p| p. timeout ( ) )
232229 . unwrap_or_default ( ) ;
233230
0 commit comments