in crates/libs/core/src/client/svc_mgmt_client.rs [54:79]
fn resolve_service_partition_internal(
&self,
name: FABRIC_URI,
partition_key_type: FABRIC_PARTITION_KEY_TYPE,
partition_key: Option<*const ::core::ffi::c_void>,
previous_result: Option<&IFabricResolvedServicePartitionResult>, // This is different from generated code
timeout_milliseconds: u32,
cancellation_token: Option<CancellationToken>,
) -> FabricReceiver<crate::WinResult<IFabricResolvedServicePartitionResult>> {
let com1 = &self.com;
let com2 = self.com.clone();
fabric_begin_end_proxy(
move |callback| unsafe {
com1.BeginResolveServicePartition(
name,
partition_key_type,
partition_key.unwrap_or(std::ptr::null()),
previous_result,
timeout_milliseconds,
callback,
)
},
move |ctx| unsafe { com2.EndResolveServicePartition(ctx) },
cancellation_token,
)
}