diff --git a/Cargo.toml b/Cargo.toml index 1506f888b..b5ae8a55a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,14 +2,14 @@ authors = ["Bilal Elmoussaoui "] categories = ["gui", "os::linux-apis", "api-bindings"] description = "XDG portals wrapper in Rust using zbus" -edition = "2021" +edition = "2024" exclude = ["interfaces/*.xml", "ashpd-demo/"] keywords = ["portal", "flatpak", "xdg", "desktop", "dbus"] license = "MIT" name = "ashpd" repository = "https://github.com/bilelmoussaoui/ashpd" version = "0.11.0" -rust-version = "1.75" +rust-version = "1.85" [features] async-std = ["zbus/async-io", "dep:async-fs", "dep:async-net", "futures-util/io"] diff --git a/examples/screen_cast_pw.rs b/examples/screen_cast_pw.rs index 162fc7129..99d5f4b93 100644 --- a/examples/screen_cast_pw.rs +++ b/examples/screen_cast_pw.rs @@ -1,8 +1,8 @@ use std::os::fd::{IntoRawFd, OwnedFd}; use ashpd::desktop::{ - screencast::{CursorMode, Screencast, SourceType, Stream as ScreencastStream}, PersistMode, + screencast::{CursorMode, Screencast, SourceType, Stream as ScreencastStream}, }; use pipewire as pw; use pw::{properties::properties, spa}; diff --git a/src/activation_token/wayland.rs b/src/activation_token/wayland.rs index bf7c1c819..c8afc5577 100644 --- a/src/activation_token/wayland.rs +++ b/src/activation_token/wayland.rs @@ -1,7 +1,7 @@ use wayland_backend::sys::client::Backend; use wayland_client::{ - protocol::{wl_registry, wl_surface::WlSurface}, Proxy, QueueHandle, + protocol::{wl_registry, wl_surface::WlSurface}, }; use wayland_protocols::xdg::activation::v1::client::{ xdg_activation_token_v1::{Event, XdgActivationTokenV1}, @@ -54,13 +54,15 @@ impl ActivationToken { return None; } - let backend = Backend::from_foreign_display(display_ptr as *mut _); + let backend = unsafe { Backend::from_foreign_display(display_ptr as *mut _) }; let conn = wayland_client::Connection::from_backend(backend); - let obj_id = wayland_backend::sys::client::ObjectId::from_ptr( - WlSurface::interface(), - surface_ptr as *mut _, - ) - .ok()?; + let obj_id = unsafe { + wayland_backend::sys::client::ObjectId::from_ptr( + WlSurface::interface(), + surface_ptr.cast(), + ) + .ok()? + }; let surface = WlSurface::from_id(&conn, obj_id).ok()?; diff --git a/src/app_id.rs b/src/app_id.rs index 9f7e055c6..1fd5c2464 100644 --- a/src/app_id.rs +++ b/src/app_id.rs @@ -210,7 +210,9 @@ mod tests { assert!(is_valid_app_id("com.org_._SomeApp")); assert!(is_valid_app_id("com.org._1SomeApp")); assert!(is_valid_app_id("com.org._1_SomeApp")); - assert!(is_valid_app_id("VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.a111111111111")); + assert!(is_valid_app_id( + "VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.a111111111111" + )); assert!(!is_valid_app_id("com.org-._SomeApp")); assert!(!is_valid_app_id("package")); @@ -225,7 +227,9 @@ mod tests { assert!(!is_valid_app_id("0P.Starts.With.A.Digit")); assert!(!is_valid_app_id("com.org.1SomeApp")); assert!(!is_valid_app_id("Element.Starts.With.A.1Digit")); - assert!(!is_valid_app_id("VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.a1111111111112")); + assert!(!is_valid_app_id( + "VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.VeryLongApplicationId.a1111111111112" + )); assert!(!is_valid_app_id("")); assert!(!is_valid_app_id("contains.;nvalid.characters")); assert!(!is_valid_app_id("con\nins.invalid.characters")); diff --git a/src/backend/access.rs b/src/backend/access.rs index 09550dd41..14ff958c2 100644 --- a/src/backend/access.rs +++ b/src/backend/access.rs @@ -3,13 +3,13 @@ use std::sync::Arc; use async_trait::async_trait; use crate::{ + AppID, WindowIdentifierType, backend::{ - request::{Request, RequestImpl}, MaybeAppID, MaybeWindowIdentifier, Result, + request::{Request, RequestImpl}, }, - desktop::{file_chooser::Choice, request::Response, HandleToken, Icon}, + desktop::{HandleToken, Icon, file_chooser::Choice, request::Response}, zvariant::{self, DeserializeDict, OwnedObjectPath, SerializeDict}, - AppID, WindowIdentifierType, }; #[derive(DeserializeDict, zvariant::Type)] diff --git a/src/backend/account.rs b/src/backend/account.rs index 77d15dd88..4efd98770 100644 --- a/src/backend/account.rs +++ b/src/backend/account.rs @@ -3,13 +3,13 @@ use std::sync::Arc; use async_trait::async_trait; use crate::{ + AppID, WindowIdentifierType, backend::{ - request::{Request, RequestImpl}, MaybeAppID, MaybeWindowIdentifier, Result, + request::{Request, RequestImpl}, }, - desktop::{account::UserInformation, request::Response, HandleToken}, + desktop::{HandleToken, account::UserInformation, request::Response}, zvariant::{DeserializeDict, OwnedObjectPath, Type}, - AppID, WindowIdentifierType, }; #[derive(Debug, DeserializeDict, Type)] diff --git a/src/backend/app_chooser.rs b/src/backend/app_chooser.rs index 6acd0c412..520974e53 100644 --- a/src/backend/app_chooser.rs +++ b/src/backend/app_chooser.rs @@ -3,14 +3,14 @@ use std::sync::Arc; use async_trait::async_trait; use crate::{ + ActivationToken, AppID, PortalError, WindowIdentifierType, backend::{ - request::{Request, RequestImpl}, MaybeAppID, MaybeWindowIdentifier, + request::{Request, RequestImpl}, }, desktop::{HandleToken, Response}, zbus::object_server::{InterfaceRef, ObjectServer}, zvariant::{DeserializeDict, OwnedObjectPath, SerializeDict, Type}, - ActivationToken, AppID, PortalError, WindowIdentifierType, }; #[derive(Debug, DeserializeDict, Type)] diff --git a/src/backend/background.rs b/src/backend/background.rs index a0482b6e6..d3ab8f964 100644 --- a/src/backend/background.rs +++ b/src/backend/background.rs @@ -1,15 +1,15 @@ use std::{collections::HashMap, sync::Arc}; use async_trait::async_trait; -use enumflags2::{bitflags, BitFlags}; +use enumflags2::{BitFlags, bitflags}; use serde_repr::{Deserialize_repr, Serialize_repr}; use crate::{ + AppID, PortalError, backend::request::{Request, RequestImpl}, desktop::{HandleToken, Response}, zbus::object_server::SignalEmitter, zvariant::{OwnedObjectPath, SerializeDict, Type}, - AppID, PortalError, }; #[derive(Serialize_repr, Deserialize_repr, Copy, Clone, PartialEq, Eq, Debug, Type)] diff --git a/src/backend/builder.rs b/src/backend/builder.rs index a838195b7..539b57079 100644 --- a/src/backend/builder.rs +++ b/src/backend/builder.rs @@ -4,6 +4,7 @@ use enumflags2::BitFlags; use zbus::names::{OwnedWellKnownName, WellKnownName}; use crate::backend::{ + Result, access::{AccessImpl, AccessInterface}, account::{AccountImpl, AccountInterface}, app_chooser::{AppChooserImpl, AppChooserInterface}, @@ -17,7 +18,6 @@ use crate::backend::{ secret::{SecretImpl, SecretInterface}, settings::{SettingsImpl, SettingsInterface}, wallpaper::{WallpaperImpl, WallpaperInterface}, - Result, }; pub struct Builder { diff --git a/src/backend/email.rs b/src/backend/email.rs index 8a3fbecd2..f25c53ea7 100644 --- a/src/backend/email.rs +++ b/src/backend/email.rs @@ -3,13 +3,13 @@ use std::sync::Arc; use async_trait::async_trait; use crate::{ + ActivationToken, AppID, WindowIdentifierType, backend::{ - request::{Request, RequestImpl}, MaybeAppID, MaybeWindowIdentifier, Result, + request::{Request, RequestImpl}, }, - desktop::{request::Response, HandleToken}, + desktop::{HandleToken, request::Response}, zvariant::{self, DeserializeDict, OwnedObjectPath}, - ActivationToken, AppID, WindowIdentifierType, }; #[derive(DeserializeDict, zvariant::Type)] diff --git a/src/backend/file_chooser.rs b/src/backend/file_chooser.rs index 4a55676f0..66f89448e 100644 --- a/src/backend/file_chooser.rs +++ b/src/backend/file_chooser.rs @@ -3,17 +3,17 @@ use std::sync::Arc; use async_trait::async_trait; use crate::{ + AppID, FilePath, WindowIdentifierType, backend::{ - request::{Request, RequestImpl}, MaybeAppID, MaybeWindowIdentifier, Result, + request::{Request, RequestImpl}, }, desktop::{ + HandleToken, file_chooser::{Choice, FileFilter}, request::Response, - HandleToken, }, zvariant::{DeserializeDict, OwnedObjectPath, SerializeDict, Type}, - AppID, FilePath, WindowIdentifierType, }; #[derive(Debug, Type, SerializeDict, Default)] diff --git a/src/backend/mod.rs b/src/backend/mod.rs index 3ebe1c706..86daf024e 100644 --- a/src/backend/mod.rs +++ b/src/backend/mod.rs @@ -1,4 +1,4 @@ -use serde::{de::Deserializer, Deserialize}; +use serde::{Deserialize, de::Deserializer}; use zbus::zvariant::Type; use crate::{AppID, WindowIdentifierType}; diff --git a/src/backend/permission_store.rs b/src/backend/permission_store.rs index bde596f84..638c15232 100644 --- a/src/backend/permission_store.rs +++ b/src/backend/permission_store.rs @@ -3,10 +3,10 @@ use std::{collections::HashMap, sync::Arc}; use async_trait::async_trait; use crate::{ + AppID, PortalError, documents::{DocumentID, Permission}, zbus::object_server::SignalEmitter, zvariant::{OwnedValue, Value}, - AppID, PortalError, }; #[async_trait] diff --git a/src/backend/print.rs b/src/backend/print.rs index 764dc50f2..8d9735897 100644 --- a/src/backend/print.rs +++ b/src/backend/print.rs @@ -3,17 +3,17 @@ use std::sync::Arc; use async_trait::async_trait; use crate::{ + AppID, WindowIdentifierType, backend::{ - request::{Request, RequestImpl}, MaybeAppID, MaybeWindowIdentifier, Result, + request::{Request, RequestImpl}, }, desktop::{ + HandleToken, print::{PageSetup, PreparePrint, Settings}, request::Response, - HandleToken, }, zvariant::{self, DeserializeDict, OwnedObjectPath}, - AppID, WindowIdentifierType, }; #[derive(DeserializeDict, zvariant::Type)] diff --git a/src/backend/request.rs b/src/backend/request.rs index 74ae31a54..fbd250f8d 100644 --- a/src/backend/request.rs +++ b/src/backend/request.rs @@ -1,7 +1,7 @@ use std::{boxed::Box, future::Future, sync::Arc}; use async_trait::async_trait; -use futures_util::future::{abortable, AbortHandle}; +use futures_util::future::{AbortHandle, abortable}; use tokio::sync::Mutex; use zbus::zvariant::{ObjectPath, OwnedObjectPath}; diff --git a/src/backend/screenshot.rs b/src/backend/screenshot.rs index c275b22ff..7a23d3693 100644 --- a/src/backend/screenshot.rs +++ b/src/backend/screenshot.rs @@ -3,15 +3,15 @@ use std::sync::Arc; use async_trait::async_trait; use crate::{ + AppID, WindowIdentifierType, backend::{ - request::{Request, RequestImpl}, MaybeAppID, MaybeWindowIdentifier, Result, + request::{Request, RequestImpl}, }, desktop::{ - request::Response, screenshot::Screenshot as ScreenshotResponse, Color, HandleToken, + Color, HandleToken, request::Response, screenshot::Screenshot as ScreenshotResponse, }, zvariant::{DeserializeDict, OwnedObjectPath, Type}, - AppID, WindowIdentifierType, }; #[derive(DeserializeDict, Type, Debug)] diff --git a/src/backend/secret.rs b/src/backend/secret.rs index e8d89c87b..33f486d84 100644 --- a/src/backend/secret.rs +++ b/src/backend/secret.rs @@ -4,12 +4,12 @@ use async_trait::async_trait; use zbus::zvariant::{self, OwnedValue}; use crate::{ + AppID, backend::{ - request::{Request, RequestImpl}, Result, + request::{Request, RequestImpl}, }, desktop::{HandleToken, Response}, - AppID, }; #[async_trait] diff --git a/src/backend/settings.rs b/src/backend/settings.rs index 7faf3a6eb..ed84fd2d0 100644 --- a/src/backend/settings.rs +++ b/src/backend/settings.rs @@ -3,16 +3,16 @@ use std::{collections::HashMap, sync::Arc}; use async_trait::async_trait; use crate::{ + PortalError, desktop::{ + Color, settings::{ - ColorScheme, Contrast, Namespace, ACCENT_COLOR_SCHEME_KEY, APPEARANCE_NAMESPACE, - COLOR_SCHEME_KEY, CONTRAST_KEY, + ACCENT_COLOR_SCHEME_KEY, APPEARANCE_NAMESPACE, COLOR_SCHEME_KEY, CONTRAST_KEY, + ColorScheme, Contrast, Namespace, }, - Color, }, zbus::object_server::SignalEmitter, zvariant::{OwnedValue, Value}, - PortalError, }; #[async_trait] diff --git a/src/backend/wallpaper.rs b/src/backend/wallpaper.rs index 354500ff2..a96f88c2a 100644 --- a/src/backend/wallpaper.rs +++ b/src/backend/wallpaper.rs @@ -3,13 +3,13 @@ use std::sync::Arc; use async_trait::async_trait; use crate::{ + AppID, WindowIdentifierType, backend::{ - request::{Request, RequestImpl}, MaybeAppID, MaybeWindowIdentifier, Result, + request::{Request, RequestImpl}, }, - desktop::{request::ResponseType, wallpaper::SetOn, HandleToken}, + desktop::{HandleToken, request::ResponseType, wallpaper::SetOn}, zvariant::{DeserializeDict, OwnedObjectPath, Type}, - AppID, WindowIdentifierType, }; #[derive(DeserializeDict, Type, Debug)] diff --git a/src/desktop/account.rs b/src/desktop/account.rs index 5390d223d..83277e7e6 100644 --- a/src/desktop/account.rs +++ b/src/desktop/account.rs @@ -25,7 +25,7 @@ use zbus::zvariant::{DeserializeDict, SerializeDict, Type}; use super::HandleToken; -use crate::{desktop::request::Request, proxy::Proxy, Error, WindowIdentifier}; +use crate::{Error, WindowIdentifier, desktop::request::Request, proxy::Proxy}; #[derive(SerializeDict, Type, Debug, Default)] #[zvariant(signature = "dict")] diff --git a/src/desktop/background.rs b/src/desktop/background.rs index ddd4834f5..00dba5a20 100644 --- a/src/desktop/background.rs +++ b/src/desktop/background.rs @@ -34,7 +34,7 @@ use serde::Serialize; use zbus::zvariant::{DeserializeDict, SerializeDict, Type}; use super::{HandleToken, Request}; -use crate::{proxy::Proxy, Error, WindowIdentifier}; +use crate::{Error, WindowIdentifier, proxy::Proxy}; #[derive(SerializeDict, Type, Debug, Default)] #[zvariant(signature = "dict")] diff --git a/src/desktop/camera.rs b/src/desktop/camera.rs index 2b739fb45..8c99ea08e 100644 --- a/src/desktop/camera.rs +++ b/src/desktop/camera.rs @@ -38,7 +38,7 @@ use pipewire::{context::Context, main_loop::MainLoop}; use zbus::zvariant::{self, SerializeDict, Type, Value}; use super::{HandleToken, Request}; -use crate::{proxy::Proxy, Error}; +use crate::{Error, proxy::Proxy}; #[derive(SerializeDict, Type, Debug, Default)] #[zvariant(signature = "dict")] diff --git a/src/desktop/clipboard.rs b/src/desktop/clipboard.rs index acc24cd34..c81c1fc8f 100644 --- a/src/desktop/clipboard.rs +++ b/src/desktop/clipboard.rs @@ -8,8 +8,8 @@ use std::collections::HashMap; use futures_util::{Stream, StreamExt}; use zbus::zvariant::{DeserializeDict, OwnedFd, OwnedObjectPath, SerializeDict, Type, Value}; -use super::{remote_desktop::RemoteDesktop, Session}; -use crate::{proxy::Proxy, Result}; +use super::{Session, remote_desktop::RemoteDesktop}; +use crate::{Result, proxy::Proxy}; #[derive(Debug, Type, SerializeDict)] #[zvariant(signature = "dict")] diff --git a/src/desktop/device.rs b/src/desktop/device.rs index 041f43a4d..c446e40da 100644 --- a/src/desktop/device.rs +++ b/src/desktop/device.rs @@ -22,7 +22,7 @@ use serde::{Deserialize, Serialize}; use zbus::zvariant::{SerializeDict, Type}; use super::{HandleToken, Request}; -use crate::{proxy::Proxy, Error, Pid}; +use crate::{Error, Pid, proxy::Proxy}; #[derive(SerializeDict, Type, Debug, Default)] /// Specified options for a [`DeviceProxy::access_device`] request. diff --git a/src/desktop/dynamic_launcher.rs b/src/desktop/dynamic_launcher.rs index b3f17557a..99c7742ca 100644 --- a/src/desktop/dynamic_launcher.rs +++ b/src/desktop/dynamic_launcher.rs @@ -52,13 +52,13 @@ use std::collections::HashMap; -use enumflags2::{bitflags, BitFlags}; +use enumflags2::{BitFlags, bitflags}; use serde::{Deserialize, Serialize}; use serde_repr::{Deserialize_repr, Serialize_repr}; use zbus::zvariant::{self, DeserializeDict, OwnedValue, SerializeDict, Type, Value}; use super::{HandleToken, Icon, Request}; -use crate::{proxy::Proxy, ActivationToken, Error, WindowIdentifier}; +use crate::{ActivationToken, Error, WindowIdentifier, proxy::Proxy}; #[bitflags] #[derive(Default, Serialize_repr, Deserialize_repr, PartialEq, Eq, Debug, Copy, Clone, Type)] diff --git a/src/desktop/email.rs b/src/desktop/email.rs index 89795b6b1..0da743d29 100644 --- a/src/desktop/email.rs +++ b/src/desktop/email.rs @@ -30,7 +30,7 @@ use serde::Serialize; use zbus::zvariant::{self, SerializeDict, Type}; use super::{HandleToken, Request}; -use crate::{proxy::Proxy, ActivationToken, Error, WindowIdentifier}; +use crate::{ActivationToken, Error, WindowIdentifier, proxy::Proxy}; #[derive(SerializeDict, Type, Debug, Default)] #[zvariant(signature = "dict")] diff --git a/src/desktop/file_chooser.rs b/src/desktop/file_chooser.rs index c0d957e56..6e27e9594 100644 --- a/src/desktop/file_chooser.rs +++ b/src/desktop/file_chooser.rs @@ -86,7 +86,7 @@ use serde_repr::{Deserialize_repr, Serialize_repr}; use zbus::zvariant::{DeserializeDict, SerializeDict, Type}; use super::{HandleToken, Request}; -use crate::{proxy::Proxy, Error, FilePath, WindowIdentifier}; +use crate::{Error, FilePath, WindowIdentifier, proxy::Proxy}; #[derive(Clone, Serialize, Deserialize, Type, Debug, PartialEq)] /// A file filter, to limit the available file choices to a mimetype or a glob diff --git a/src/desktop/game_mode.rs b/src/desktop/game_mode.rs index 2344c2dbc..880b835fc 100644 --- a/src/desktop/game_mode.rs +++ b/src/desktop/game_mode.rs @@ -20,7 +20,7 @@ use std::{fmt::Debug, os::fd::AsFd}; use serde_repr::Deserialize_repr; use zbus::zvariant::{Fd, Type}; -use crate::{error::PortalError, proxy::Proxy, Error, Pid}; +use crate::{Error, Pid, error::PortalError, proxy::Proxy}; #[cfg_attr(feature = "glib", derive(glib::Enum))] #[cfg_attr(feature = "glib", enum_type(name = "AshpdGameModeStatus"))] diff --git a/src/desktop/global_shortcuts.rs b/src/desktop/global_shortcuts.rs index 360b589c2..5a7966663 100644 --- a/src/desktop/global_shortcuts.rs +++ b/src/desktop/global_shortcuts.rs @@ -2,14 +2,14 @@ use std::{collections::HashMap, fmt::Debug, time::Duration}; -use futures_util::{Stream, TryFutureExt}; +use futures_util::Stream; use serde::{Deserialize, Serialize}; use zbus::zvariant::{ DeserializeDict, ObjectPath, OwnedObjectPath, OwnedValue, SerializeDict, Type, }; -use super::{session::SessionPortal, HandleToken, Request, Session}; -use crate::{desktop::session::CreateSessionResponse, proxy::Proxy, Error, WindowIdentifier}; +use super::{HandleToken, Request, Session, session::SessionPortal}; +use crate::{Error, WindowIdentifier, desktop::session::CreateSessionResponse, proxy::Proxy}; #[derive(Clone, SerializeDict, Type, Debug, Default)] #[zvariant(signature = "dict")] diff --git a/src/desktop/icon.rs b/src/desktop/icon.rs index c86e0c868..602d306cc 100644 --- a/src/desktop/icon.rs +++ b/src/desktop/icon.rs @@ -1,9 +1,8 @@ use std::os::fd::AsFd; use serde::{ - de, + Deserialize, de, ser::{Serialize, SerializeTuple}, - Deserialize, }; use zbus::zvariant::{self, OwnedValue, Type, Value}; @@ -215,7 +214,7 @@ impl TryFrom<&Value<'_>> for Icon { #[cfg(test)] mod test { - use zbus::zvariant::{serialized::Context, to_bytes, Endian}; + use zbus::zvariant::{Endian, serialized::Context, to_bytes}; use super::*; diff --git a/src/desktop/inhibit.rs b/src/desktop/inhibit.rs index d6361a8f8..287f75545 100644 --- a/src/desktop/inhibit.rs +++ b/src/desktop/inhibit.rs @@ -34,14 +34,14 @@ //! } //! ``` -use enumflags2::{bitflags, BitFlags}; -use futures_util::{Stream, TryFutureExt}; +use enumflags2::{BitFlags, bitflags}; +use futures_util::Stream; use serde::Deserialize; use serde_repr::{Deserialize_repr, Serialize_repr}; use zbus::zvariant::{DeserializeDict, ObjectPath, OwnedObjectPath, SerializeDict, Type}; -use super::{session::SessionPortal, HandleToken, Request, Session}; -use crate::{desktop::session::CreateSessionResponse, proxy::Proxy, Error, WindowIdentifier}; +use super::{HandleToken, Request, Session, session::SessionPortal}; +use crate::{Error, WindowIdentifier, desktop::session::CreateSessionResponse, proxy::Proxy}; #[derive(SerializeDict, Type, Debug, Default)] /// Specified options for a [`InhibitProxy::create_monitor`] request. diff --git a/src/desktop/input_capture.rs b/src/desktop/input_capture.rs index 44c3ac9c9..e62ed0d82 100644 --- a/src/desktop/input_capture.rs +++ b/src/desktop/input_capture.rs @@ -269,16 +269,16 @@ use std::{collections::HashMap, num::NonZeroU32, os::fd::OwnedFd}; -use enumflags2::{bitflags, BitFlags}; -use futures_util::{Stream, TryFutureExt}; -use serde::{de::Visitor, Deserialize}; +use enumflags2::{BitFlags, bitflags}; +use futures_util::Stream; +use serde::{Deserialize, de::Visitor}; use serde_repr::{Deserialize_repr, Serialize_repr}; use zbus::zvariant::{ self, DeserializeDict, ObjectPath, OwnedObjectPath, OwnedValue, SerializeDict, Type, Value, }; -use super::{session::SessionPortal, HandleToken, Request, Session}; -use crate::{proxy::Proxy, Error, WindowIdentifier}; +use super::{HandleToken, Request, Session, session::SessionPortal}; +use crate::{Error, WindowIdentifier, proxy::Proxy}; #[derive(Serialize_repr, Deserialize_repr, PartialEq, Eq, Debug, Copy, Clone, Type)] #[bitflags] diff --git a/src/desktop/location.rs b/src/desktop/location.rs index 116cbccc1..afd3f59be 100644 --- a/src/desktop/location.rs +++ b/src/desktop/location.rs @@ -26,13 +26,13 @@ use std::fmt::Debug; -use futures_util::{Stream, TryFutureExt}; +use futures_util::Stream; use serde::Deserialize; use serde_repr::Serialize_repr; use zbus::zvariant::{DeserializeDict, ObjectPath, OwnedObjectPath, SerializeDict, Type}; -use super::{session::SessionPortal, HandleToken, Request, Session}; -use crate::{proxy::Proxy, Error, WindowIdentifier}; +use super::{HandleToken, Request, Session, session::SessionPortal}; +use crate::{Error, WindowIdentifier, proxy::Proxy}; #[cfg_attr(feature = "glib", derive(glib::Enum))] #[cfg_attr(feature = "glib", enum_type(name = "AshpdLocationAccuracy"))] diff --git a/src/desktop/memory_monitor.rs b/src/desktop/memory_monitor.rs index 04851b96b..9bc875de0 100644 --- a/src/desktop/memory_monitor.rs +++ b/src/desktop/memory_monitor.rs @@ -19,7 +19,7 @@ use futures_util::Stream; -use crate::{proxy::Proxy, Error}; +use crate::{Error, proxy::Proxy}; /// The interface provides information about low system memory to sandboxed /// applications. diff --git a/src/desktop/network_monitor.rs b/src/desktop/network_monitor.rs index 0f0eb5cab..21a1d0827 100644 --- a/src/desktop/network_monitor.rs +++ b/src/desktop/network_monitor.rs @@ -23,7 +23,7 @@ use futures_util::Stream; use serde_repr::Deserialize_repr; use zbus::zvariant::{DeserializeDict, Type}; -use crate::{proxy::Proxy, Error}; +use crate::{Error, proxy::Proxy}; #[derive(DeserializeDict, Type, Debug)] /// The network status, composed of the availability, metered & connectivity diff --git a/src/desktop/notification.rs b/src/desktop/notification.rs index 8d2360a1e..2918d4913 100644 --- a/src/desktop/notification.rs +++ b/src/desktop/notification.rs @@ -4,8 +4,8 @@ //! use std::{thread, time}; //! //! use ashpd::desktop::{ -//! notification::{Action, Button, Notification, NotificationProxy, Priority}, //! Icon, +//! notification::{Action, Button, Notification, NotificationProxy, Priority}, //! }; //! use futures_util::StreamExt; //! use zbus::zvariant::Value; @@ -57,7 +57,7 @@ use serde::{self, Deserialize, Serialize}; use zbus::zvariant::{DeserializeDict, OwnedValue, SerializeDict, Type, Value}; use super::Icon; -use crate::{proxy::Proxy, Error}; +use crate::{Error, proxy::Proxy}; #[derive(Debug, Clone, PartialEq, Eq, Type)] #[zvariant(signature = "s")] diff --git a/src/desktop/open_uri.rs b/src/desktop/open_uri.rs index 7389e7a8c..7b3592309 100644 --- a/src/desktop/open_uri.rs +++ b/src/desktop/open_uri.rs @@ -57,7 +57,7 @@ use url::Url; use zbus::zvariant::{Fd, SerializeDict, Type}; use super::{HandleToken, Request}; -use crate::{proxy::Proxy, ActivationToken, Error, WindowIdentifier}; +use crate::{ActivationToken, Error, WindowIdentifier, proxy::Proxy}; #[derive(SerializeDict, Type, Debug, Default)] #[zvariant(signature = "dict")] diff --git a/src/desktop/power_profile_monitor.rs b/src/desktop/power_profile_monitor.rs index 7d5935868..7e031507f 100644 --- a/src/desktop/power_profile_monitor.rs +++ b/src/desktop/power_profile_monitor.rs @@ -1,4 +1,4 @@ -use crate::{proxy::Proxy, Error}; +use crate::{Error, proxy::Proxy}; /// The interface provides information about the user-selected system-wide power /// profile, to sandboxed applications. diff --git a/src/desktop/print.rs b/src/desktop/print.rs index d5751dd1c..68fdc2b82 100644 --- a/src/desktop/print.rs +++ b/src/desktop/print.rs @@ -37,7 +37,7 @@ use serde::{Deserialize, Serialize}; use zbus::zvariant::{DeserializeDict, Fd, SerializeDict, Type}; use super::{HandleToken, Request}; -use crate::{proxy::Proxy, Error, WindowIdentifier}; +use crate::{Error, WindowIdentifier, proxy::Proxy}; #[cfg_attr(feature = "glib", derive(glib::Enum))] #[cfg_attr(feature = "glib", enum_type(name = "AshpdOrientation"))] diff --git a/src/desktop/proxy_resolver.rs b/src/desktop/proxy_resolver.rs index 3983c1800..a444b2419 100644 --- a/src/desktop/proxy_resolver.rs +++ b/src/desktop/proxy_resolver.rs @@ -14,7 +14,7 @@ //! } //! ``` -use crate::{proxy::Proxy, Error}; +use crate::{Error, proxy::Proxy}; /// The interface provides network proxy information to sandboxed applications. /// diff --git a/src/desktop/realtime.rs b/src/desktop/realtime.rs index 6a4f4c1e4..c50793531 100644 --- a/src/desktop/realtime.rs +++ b/src/desktop/realtime.rs @@ -2,7 +2,7 @@ //! //! Wrapper of the DBus interface: [`org.freedesktop.portal.Realtime`](https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.portal.Realtime.html). -use crate::{proxy::Proxy, Error, Pid}; +use crate::{Error, Pid, proxy::Proxy}; /// Interface for setting a thread to realtime from within the sandbox. /// diff --git a/src/desktop/remote_desktop.rs b/src/desktop/remote_desktop.rs index 871a9eb03..f5baacf63 100644 --- a/src/desktop/remote_desktop.rs +++ b/src/desktop/remote_desktop.rs @@ -2,8 +2,8 @@ //! //! ```rust,no_run //! use ashpd::desktop::{ -//! remote_desktop::{DeviceType, KeyState, RemoteDesktop}, //! PersistMode, +//! remote_desktop::{DeviceType, KeyState, RemoteDesktop}, //! }; //! //! async fn run() -> ashpd::Result<()> { @@ -38,9 +38,9 @@ //! //! ```rust,no_run //! use ashpd::desktop::{ +//! PersistMode, //! remote_desktop::{DeviceType, KeyState, RemoteDesktop}, //! screencast::{CursorMode, Screencast, SourceType}, -//! PersistMode, //! }; //! //! async fn run() -> ashpd::Result<()> { @@ -84,15 +84,14 @@ use std::{collections::HashMap, os::fd::OwnedFd}; -use enumflags2::{bitflags, BitFlags}; -use futures_util::TryFutureExt; +use enumflags2::{BitFlags, bitflags}; use serde_repr::{Deserialize_repr, Serialize_repr}; use zbus::zvariant::{self, DeserializeDict, SerializeDict, Type, Value}; use super::{ - screencast::Stream, session::SessionPortal, HandleToken, PersistMode, Request, Session, + HandleToken, PersistMode, Request, Session, screencast::Stream, session::SessionPortal, }; -use crate::{desktop::session::CreateSessionResponse, proxy::Proxy, Error, WindowIdentifier}; +use crate::{Error, WindowIdentifier, desktop::session::CreateSessionResponse, proxy::Proxy}; #[cfg_attr(feature = "glib", derive(glib::Enum))] #[cfg_attr(feature = "glib", enum_type(name = "AshpdKeyState"))] diff --git a/src/desktop/request.rs b/src/desktop/request.rs index 2a149bb1b..adc49eb02 100644 --- a/src/desktop/request.rs +++ b/src/desktop/request.rs @@ -7,16 +7,16 @@ use std::{ use futures_util::StreamExt; use serde::{ + Deserialize, Deserializer, Serialize, de::{self, Error as SeError, Visitor}, ser::SerializeTuple, - Deserialize, Deserializer, Serialize, }; use zbus::{ proxy::SignalStream, zvariant::{ObjectPath, Type, Value}, }; -use crate::{desktop::HandleToken, proxy::Proxy, Error}; +use crate::{Error, desktop::HandleToken, proxy::Proxy}; /// A typical response returned by the [`Request::response`]. /// of a [`Request`]. diff --git a/src/desktop/screencast.rs b/src/desktop/screencast.rs index 591050da5..2ed99cb14 100644 --- a/src/desktop/screencast.rs +++ b/src/desktop/screencast.rs @@ -7,8 +7,8 @@ //! //! ```rust,no_run //! use ashpd::desktop::{ -//! screencast::{CursorMode, Screencast, SourceType}, //! PersistMode, +//! screencast::{CursorMode, Screencast, SourceType}, //! }; //! //! async fn run() -> ashpd::Result<()> { @@ -38,17 +38,16 @@ use std::{collections::HashMap, fmt::Debug, os::fd::OwnedFd}; -use enumflags2::{bitflags, BitFlags}; -use futures_util::TryFutureExt; +use enumflags2::{BitFlags, bitflags}; use serde::Deserialize; use serde_repr::{Deserialize_repr, Serialize_repr}; use zbus::zvariant::{self, DeserializeDict, SerializeDict, Type, Value}; use super::{ - remote_desktop::RemoteDesktop, session::SessionPortal, HandleToken, PersistMode, Request, - Session, + HandleToken, PersistMode, Request, Session, remote_desktop::RemoteDesktop, + session::SessionPortal, }; -use crate::{desktop::session::CreateSessionResponse, proxy::Proxy, Error, WindowIdentifier}; +use crate::{Error, WindowIdentifier, desktop::session::CreateSessionResponse, proxy::Proxy}; #[bitflags] #[derive(Serialize_repr, Deserialize_repr, PartialEq, Eq, Copy, Clone, Debug, Type)] diff --git a/src/desktop/screenshot.rs b/src/desktop/screenshot.rs index 730444352..31c3cf5c0 100644 --- a/src/desktop/screenshot.rs +++ b/src/desktop/screenshot.rs @@ -38,7 +38,7 @@ use std::fmt::Debug; use zbus::zvariant::{DeserializeDict, SerializeDict, Type}; use super::{HandleToken, Request}; -use crate::{desktop::Color, proxy::Proxy, Error, WindowIdentifier}; +use crate::{Error, WindowIdentifier, desktop::Color, proxy::Proxy}; #[derive(SerializeDict, Type, Debug, Default)] #[zvariant(signature = "dict")] diff --git a/src/desktop/secret.rs b/src/desktop/secret.rs index 1cb27b9ee..93249dce6 100644 --- a/src/desktop/secret.rs +++ b/src/desktop/secret.rs @@ -21,7 +21,7 @@ use std::os::fd::AsFd; #[cfg(feature = "async-std")] -use async_net::{unix::UnixStream, Shutdown}; +use async_net::{Shutdown, unix::UnixStream}; #[cfg(feature = "async-std")] use futures_util::AsyncReadExt; #[cfg(feature = "tokio")] @@ -29,7 +29,7 @@ use tokio::{io::AsyncReadExt, io::AsyncWriteExt, net::UnixStream}; use zbus::zvariant::{Fd, SerializeDict, Type}; use super::{HandleToken, Request}; -use crate::{proxy::Proxy, Error}; +use crate::{Error, proxy::Proxy}; #[derive(SerializeDict, Type, Debug, Default)] /// Specified options for a [`Secret::retrieve`] request. diff --git a/src/desktop/session.rs b/src/desktop/session.rs index 1c26fc1f9..eb01d4bd0 100644 --- a/src/desktop/session.rs +++ b/src/desktop/session.rs @@ -4,7 +4,7 @@ use futures_util::Stream; use serde::{Deserialize, Serialize, Serializer}; use zbus::zvariant::{ObjectPath, OwnedObjectPath, OwnedValue, Type}; -use crate::{desktop::HandleToken, proxy::Proxy, Error}; +use crate::{Error, desktop::HandleToken, proxy::Proxy}; /// Shared by all portal interfaces that involve long lived sessions. /// diff --git a/src/desktop/settings.rs b/src/desktop/settings.rs index 7dc53cf39..2c0d28a75 100644 --- a/src/desktop/settings.rs +++ b/src/desktop/settings.rs @@ -33,7 +33,7 @@ use futures_util::{Stream, StreamExt}; use serde::{Deserialize, Serialize}; use zbus::zvariant::{OwnedValue, Type, Value}; -use crate::{desktop::Color, proxy::Proxy, Error}; +use crate::{Error, desktop::Color, proxy::Proxy}; /// A HashMap of the settings found on a specific namespace. pub type Namespace = HashMap; diff --git a/src/desktop/trash.rs b/src/desktop/trash.rs index 8a54bf7f3..71d498e2a 100644 --- a/src/desktop/trash.rs +++ b/src/desktop/trash.rs @@ -35,7 +35,7 @@ use std::os::fd::AsFd; use serde_repr::{Deserialize_repr, Serialize_repr}; use zbus::zvariant::{Fd, Type}; -use crate::{error::PortalError, proxy::Proxy, Error}; +use crate::{Error, error::PortalError, proxy::Proxy}; #[derive(Debug, Deserialize_repr, Serialize_repr, PartialEq, Type)] #[repr(u32)] diff --git a/src/desktop/usb.rs b/src/desktop/usb.rs index 1b329e527..5acafddad 100644 --- a/src/desktop/usb.rs +++ b/src/desktop/usb.rs @@ -37,9 +37,9 @@ use zbus::zvariant::{ }; use crate::{ + Error, WindowIdentifier, desktop::{HandleToken, Session, SessionPortal}, proxy::Proxy, - Error, WindowIdentifier, }; #[derive(Debug, SerializeDict, Type, Default)] diff --git a/src/desktop/wallpaper.rs b/src/desktop/wallpaper.rs index d6e789cc8..2ebc36d07 100644 --- a/src/desktop/wallpaper.rs +++ b/src/desktop/wallpaper.rs @@ -45,7 +45,7 @@ use serde::{self, Deserialize, Serialize}; use zbus::zvariant::{Fd, SerializeDict, Type}; use super::Request; -use crate::{desktop::HandleToken, proxy::Proxy, Error, WindowIdentifier}; +use crate::{Error, WindowIdentifier, desktop::HandleToken, proxy::Proxy}; #[cfg_attr(feature = "glib", derive(glib::Enum))] #[cfg_attr(feature = "glib", enum_type(name = "AshpdSetOn"))] diff --git a/src/documents/file_transfer.rs b/src/documents/file_transfer.rs index a336ba3a6..addbef008 100644 --- a/src/documents/file_transfer.rs +++ b/src/documents/file_transfer.rs @@ -27,7 +27,7 @@ use std::{collections::HashMap, os::fd::AsFd}; use futures_util::Stream; use zbus::zvariant::{Fd, SerializeDict, Type, Value}; -use crate::{proxy::Proxy, Error}; +use crate::{Error, proxy::Proxy}; #[derive(SerializeDict, Debug, Type, Default)] /// Specified options for a [`FileTransfer::start_transfer`] request. diff --git a/src/documents/mod.rs b/src/documents/mod.rs index 0d2991fbe..f187c2c03 100644 --- a/src/documents/mod.rs +++ b/src/documents/mod.rs @@ -4,8 +4,8 @@ //! use std::str::FromStr; //! //! use ashpd::{ -//! documents::{Documents, Permission}, //! AppID, +//! documents::{Documents, Permission}, //! }; //! //! async fn run() -> ashpd::Result<()> { @@ -35,13 +35,13 @@ use std::{collections::HashMap, fmt, os::fd::AsFd, path::Path, str::FromStr}; -use enumflags2::{bitflags, BitFlags}; +use enumflags2::{BitFlags, bitflags}; use serde::{Deserialize, Serialize}; use serde_repr::{Deserialize_repr, Serialize_repr}; use zbus::zvariant::{Fd, OwnedValue, Type}; pub use crate::app_id::DocumentID; -use crate::{proxy::Proxy, AppID, Error, FilePath}; +use crate::{AppID, Error, FilePath, proxy::Proxy}; #[bitflags] #[derive(Serialize_repr, Deserialize_repr, PartialEq, Eq, Copy, Clone, Debug, Type)] @@ -520,7 +520,7 @@ mod tests { use zbus::zvariant::Type; - use crate::{app_id::DocumentID, documents::Permission, FilePath}; + use crate::{FilePath, app_id::DocumentID, documents::Permission}; #[test] fn serialize_deserialize() { diff --git a/src/file_path.rs b/src/file_path.rs index cb57f314e..8fe274660 100644 --- a/src/file_path.rs +++ b/src/file_path.rs @@ -52,8 +52,9 @@ impl<'de> Deserialize<'de> for FilePath { #[cfg(test)] mod tests { use zbus::zvariant::{ + Endian, serialized::{Context, Data}, - to_bytes, Endian, + to_bytes, }; use super::*; diff --git a/src/flatpak/development.rs b/src/flatpak/development.rs index 6160da88a..5a14c409e 100644 --- a/src/flatpak/development.rs +++ b/src/flatpak/development.rs @@ -4,12 +4,12 @@ use std::{collections::HashMap, os::fd::AsFd, path::Path}; -use enumflags2::{bitflags, BitFlags}; +use enumflags2::{BitFlags, bitflags}; use futures_util::Stream; use serde_repr::{Deserialize_repr, Serialize_repr}; use zbus::zvariant::{Fd, Type}; -use crate::{proxy::Proxy, Error, FilePath, Pid}; +use crate::{Error, FilePath, Pid, proxy::Proxy}; #[bitflags] #[derive(Serialize_repr, Deserialize_repr, PartialEq, Eq, Copy, Clone, Debug, Type)] diff --git a/src/flatpak/mod.rs b/src/flatpak/mod.rs index 3d48af2c2..5fc381dc9 100644 --- a/src/flatpak/mod.rs +++ b/src/flatpak/mod.rs @@ -33,13 +33,13 @@ use std::{ path::Path, }; -use enumflags2::{bitflags, BitFlags}; +use enumflags2::{BitFlags, bitflags}; use futures_util::Stream; use serde::Serialize; use serde_repr::{Deserialize_repr, Serialize_repr}; use zbus::zvariant::{self, Fd, OwnedObjectPath, SerializeDict, Type}; -use crate::{proxy::Proxy, Error, FilePath, Pid}; +use crate::{Error, FilePath, Pid, proxy::Proxy}; #[bitflags] #[derive(Serialize_repr, Deserialize_repr, PartialEq, Eq, Copy, Clone, Debug, Type)] diff --git a/src/flatpak/update_monitor.rs b/src/flatpak/update_monitor.rs index 6bf758c38..172e59650 100644 --- a/src/flatpak/update_monitor.rs +++ b/src/flatpak/update_monitor.rs @@ -30,7 +30,7 @@ use futures_util::Stream; use serde_repr::{Deserialize_repr, Serialize_repr}; use zbus::zvariant::{DeserializeDict, ObjectPath, SerializeDict, Type}; -use crate::{proxy::Proxy, Error, WindowIdentifier}; +use crate::{Error, WindowIdentifier, proxy::Proxy}; #[derive(SerializeDict, Type, Debug, Default)] /// Specified options for a [`UpdateMonitor::update`] request. diff --git a/src/proxy.rs b/src/proxy.rs index f8864fa55..ce4b9706e 100644 --- a/src/proxy.rs +++ b/src/proxy.rs @@ -3,13 +3,13 @@ use std::{fmt::Debug, future::ready, ops::Deref, sync::OnceLock}; use futures_util::{Stream, StreamExt}; use serde::{Deserialize, Serialize}; -use zbus::zvariant::{ObjectPath, OwnedValue, Type}; #[cfg(feature = "tracing")] use zbus::Message; +use zbus::zvariant::{ObjectPath, OwnedValue, Type}; use crate::{ - desktop::{HandleToken, Request}, Error, PortalError, + desktop::{HandleToken, Request}, }; pub(crate) const DESKTOP_DESTINATION: &str = "org.freedesktop.portal.Desktop"; @@ -234,7 +234,7 @@ impl<'a> Proxy<'a> { &self, name: &'static str, args: &[(u8, &str)], - ) -> Result, Error> + ) -> Result + use, Error> where I: for<'de> Deserialize<'de> + Type + Debug, { diff --git a/src/registry.rs b/src/registry.rs index 9656398cd..1526b9c81 100644 --- a/src/registry.rs +++ b/src/registry.rs @@ -1,6 +1,6 @@ use zbus::zvariant; -use crate::{proxy::Proxy, AppID, Error}; +use crate::{AppID, Error, proxy::Proxy}; #[derive(Debug, zvariant::SerializeDict, zvariant::Type)] #[zvariant(signature = "dict")] diff --git a/src/window_identifier/mod.rs b/src/window_identifier/mod.rs index 29e737662..9071e3696 100644 --- a/src/window_identifier/mod.rs +++ b/src/window_identifier/mod.rs @@ -6,7 +6,7 @@ use raw_window_handle::{ }; #[cfg(feature = "raw_handle")] use raw_window_handle::{RawDisplayHandle, RawWindowHandle}; -use serde::{ser::Serializer, Deserialize, Serialize}; +use serde::{Deserialize, Serialize, ser::Serializer}; use zbus::zvariant::Type; /// Most portals interact with the user by showing dialogs. /// @@ -193,9 +193,11 @@ impl WindowIdentifier { surface_ptr: *mut std::ffi::c_void, display_ptr: *mut std::ffi::c_void, ) -> Option { - WaylandWindowIdentifier::from_raw(surface_ptr, display_ptr) - .await - .map(Self::Wayland) + unsafe { + WaylandWindowIdentifier::from_raw(surface_ptr, display_ptr) + .await + .map(Self::Wayland) + } } #[cfg(feature = "wayland")] diff --git a/src/window_identifier/wayland.rs b/src/window_identifier/wayland.rs index bf0788907..1173f4b2f 100644 --- a/src/window_identifier/wayland.rs +++ b/src/window_identifier/wayland.rs @@ -2,8 +2,8 @@ use std::fmt; use wayland_backend::sys::client::Backend; use wayland_client::{ - protocol::{wl_registry, wl_surface::WlSurface}, Proxy, QueueHandle, + protocol::{wl_registry, wl_surface::WlSurface}, }; use wayland_protocols::xdg::foreign::{ zv1::client::{ @@ -65,13 +65,15 @@ impl WaylandWindowIdentifier { return None; } - let backend = Backend::from_foreign_display(display_ptr as *mut _); + let backend = unsafe { Backend::from_foreign_display(display_ptr as *mut _) }; let conn = wayland_client::Connection::from_backend(backend); - let obj_id = wayland_backend::sys::client::ObjectId::from_ptr( - WlSurface::interface(), - surface_ptr as *mut _, - ) - .ok()?; + let obj_id = unsafe { + wayland_backend::sys::client::ObjectId::from_ptr( + WlSurface::interface(), + surface_ptr.cast(), + ) + .ok()? + }; let surface = WlSurface::from_id(&conn, obj_id).ok()?;