diff options
| author | Sebastian Holmin <sebastian.holmin@mullvad.net> | 2025-02-07 17:20:05 +0100 |
|---|---|---|
| committer | Sebastian Holmin <sebastian.holmin@mullvad.net> | 2025-02-12 10:15:18 +0100 |
| commit | af149bfa9600a5222b2b45e1df3c9ab29ea19231 (patch) | |
| tree | 2c26badf7fa69b5dae7d1c3d091375bf9f87bb90 /mullvad-api/src | |
| parent | 53a11fdfef7ae5a8ad73a83c988968d1c89caab4 (diff) | |
| download | mullvadvpn-af149bfa9600a5222b2b45e1df3c9ab29ea19231.tar.xz mullvadvpn-af149bfa9600a5222b2b45e1df3c9ab29ea19231.zip | |
Fix "RPIT lifetime capture rules"
Diffstat (limited to 'mullvad-api/src')
| -rw-r--r-- | mullvad-api/src/availability.rs | 20 | ||||
| -rw-r--r-- | mullvad-api/src/device.rs | 13 | ||||
| -rw-r--r-- | mullvad-api/src/lib.rs | 14 | ||||
| -rw-r--r-- | mullvad-api/src/relay_list.rs | 2 |
4 files changed, 29 insertions, 20 deletions
diff --git a/mullvad-api/src/availability.rs b/mullvad-api/src/availability.rs index 9d5e135c15..a8ac3aa6cf 100644 --- a/mullvad-api/src/availability.rs +++ b/mullvad-api/src/availability.rs @@ -128,11 +128,14 @@ impl ApiAvailability { self.acquire().state } - pub fn wait_for_unsuspend(&self) -> impl Future<Output = Result<(), Error>> { + pub fn wait_for_unsuspend(&self) -> impl Future<Output = Result<(), Error>> + use<> { self.wait_for_state(|state| !state.is_suspended()) } - pub fn when_bg_resumes<F: Future<Output = O>, O>(&self, task: F) -> impl Future<Output = O> { + pub fn when_bg_resumes<F: Future<Output = O>, O>( + &self, + task: F, + ) -> impl Future<Output = O> + use<F, O> { let wait_task = self.wait_for_state(|state| !state.is_background_paused()); async move { let _ = wait_task.await; @@ -140,11 +143,14 @@ impl ApiAvailability { } } - pub fn wait_background(&self) -> impl Future<Output = Result<(), Error>> { + pub fn wait_background(&self) -> impl Future<Output = Result<(), Error>> + use<> { self.wait_for_state(|state| !state.is_background_paused()) } - pub fn when_online<F: Future<Output = O>, O>(&self, task: F) -> impl Future<Output = O> { + pub fn when_online<F: Future<Output = O>, O>( + &self, + task: F, + ) -> impl Future<Output = O> + use<F, O> { let wait_task = self.wait_for_state(|state| !state.is_offline()); async move { let _ = wait_task.await; @@ -156,10 +162,10 @@ impl ApiAvailability { self.wait_for_state(|state| !state.is_offline()) } - fn wait_for_state( + fn wait_for_state<F: Fn(State) -> bool>( &self, - state_ready: impl Fn(State) -> bool, - ) -> impl Future<Output = Result<(), Error>> { + state_ready: F, + ) -> impl Future<Output = Result<(), Error>> + use<F> { let mut rx = { self.acquire().tx.subscribe() }; let handle = self.clone(); diff --git a/mullvad-api/src/device.rs b/mullvad-api/src/device.rs index 036beb731f..062c06f28b 100644 --- a/mullvad-api/src/device.rs +++ b/mullvad-api/src/device.rs @@ -36,8 +36,9 @@ impl DevicesProxy { &self, account: AccountNumber, pubkey: wireguard::PublicKey, - ) -> impl Future<Output = Result<(Device, mullvad_types::wireguard::AssociatedAddresses), rest::Error>> - { + ) -> impl Future< + Output = Result<(Device, mullvad_types::wireguard::AssociatedAddresses), rest::Error>, + > + use<> { #[derive(serde::Serialize)] struct DeviceSubmission { pubkey: wireguard::PublicKey, @@ -89,7 +90,7 @@ impl DevicesProxy { &self, account: AccountNumber, id: DeviceId, - ) -> impl Future<Output = Result<Device, rest::Error>> { + ) -> impl Future<Output = Result<Device, rest::Error>> + use<> { let service = self.handle.service.clone(); let factory = self.handle.factory.clone(); async move { @@ -104,7 +105,7 @@ impl DevicesProxy { pub fn list( &self, account: AccountNumber, - ) -> impl Future<Output = Result<Vec<Device>, rest::Error>> { + ) -> impl Future<Output = Result<Vec<Device>, rest::Error>> + use<> { let service = self.handle.service.clone(); let factory = self.handle.factory.clone(); async move { @@ -120,7 +121,7 @@ impl DevicesProxy { &self, account: AccountNumber, id: DeviceId, - ) -> impl Future<Output = Result<(), rest::Error>> { + ) -> impl Future<Output = Result<(), rest::Error>> + use<> { let service = self.handle.service.clone(); let factory = self.handle.factory.clone(); async move { @@ -138,7 +139,7 @@ impl DevicesProxy { account: AccountNumber, id: DeviceId, pubkey: wireguard::PublicKey, - ) -> impl Future<Output = Result<mullvad_types::wireguard::AssociatedAddresses, rest::Error>> + ) -> impl Future<Output = Result<mullvad_types::wireguard::AssociatedAddresses, rest::Error>> + use<> { #[derive(serde::Serialize)] struct RotateDevicePubkey { diff --git a/mullvad-api/src/lib.rs b/mullvad-api/src/lib.rs index a47c708b2e..997a0635c7 100644 --- a/mullvad-api/src/lib.rs +++ b/mullvad-api/src/lib.rs @@ -504,7 +504,7 @@ impl AccountsProxy { pub fn get_data( &self, account: AccountNumber, - ) -> impl Future<Output = Result<AccountData, rest::Error>> { + ) -> impl Future<Output = Result<AccountData, rest::Error>> + use<> { let service = self.handle.service.clone(); let factory = self.handle.factory.clone(); async move { @@ -517,7 +517,9 @@ impl AccountsProxy { } } - pub fn create_account(&self) -> impl Future<Output = Result<AccountNumber, rest::Error>> { + pub fn create_account( + &self, + ) -> impl Future<Output = Result<AccountNumber, rest::Error>> + use<> { #[derive(serde::Deserialize)] struct AccountCreationResponse { number: AccountNumber, @@ -540,7 +542,7 @@ impl AccountsProxy { &self, account: AccountNumber, voucher_code: String, - ) -> impl Future<Output = Result<VoucherSubmission, rest::Error>> { + ) -> impl Future<Output = Result<VoucherSubmission, rest::Error>> + use<> { #[derive(serde::Serialize)] struct VoucherSubmission { voucher_code: String, @@ -562,7 +564,7 @@ impl AccountsProxy { pub fn delete_account( &self, account: AccountNumber, - ) -> impl Future<Output = Result<(), rest::Error>> { + ) -> impl Future<Output = Result<(), rest::Error>> + use<> { let service = self.handle.service.clone(); let factory = self.handle.factory.clone(); @@ -629,7 +631,7 @@ impl AccountsProxy { pub fn get_www_auth_token( &self, account: AccountNumber, - ) -> impl Future<Output = Result<String, rest::Error>> { + ) -> impl Future<Output = Result<String, rest::Error>> + use<> { #[derive(serde::Deserialize)] struct AuthTokenResponse { auth_token: String, @@ -717,7 +719,7 @@ impl AppVersionProxy { app_version: AppVersion, platform: &str, platform_version: String, - ) -> impl Future<Output = Result<AppVersionResponse, rest::Error>> { + ) -> impl Future<Output = Result<AppVersionResponse, rest::Error>> + use<> { let service = self.handle.service.clone(); let path = format!("{APP_URL_PREFIX}/releases/{platform}/{app_version}"); diff --git a/mullvad-api/src/relay_list.rs b/mullvad-api/src/relay_list.rs index f1375b5f6f..f19961bc8a 100644 --- a/mullvad-api/src/relay_list.rs +++ b/mullvad-api/src/relay_list.rs @@ -32,7 +32,7 @@ impl RelayListProxy { pub fn relay_list( &self, etag: Option<String>, - ) -> impl Future<Output = Result<Option<relay_list::RelayList>, rest::Error>> { + ) -> impl Future<Output = Result<Option<relay_list::RelayList>, rest::Error>> + use<> { let service = self.handle.service.clone(); let request = self.handle.factory.get("app/v1/relays"); |
