Skip to content

Commit cda5eb3

Browse files
committed
Add serde derives
1 parent 13e18c4 commit cda5eb3

6 files changed

Lines changed: 15 additions & 3 deletions

File tree

Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ num_enum = { version = "0.7", default-features = false }
2525
thiserror = { version = "2.0", default-features = false }
2626
enumflags2 = { version = "0.7", default-features = false }
2727
dunce = { version = "1.0", default-features = false }
28+
serde = { version = "1.0", features = ["derive"], optional = true }
2829

2930
[dev-dependencies]
3031
dunce = { version = "1", default-features = false }
@@ -33,6 +34,7 @@ uuid = { version = "1", features = ["v4"], default-features = false }
3334
[features]
3435
default = ["runas"]
3536
runas = []
37+
serde = ["dep:serde"]
3638
doc-cfg = []
3739

3840
[package.metadata.docs.rs]

src/hotkey.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ const fn convert(code: u32) -> u8 {
1414
#[bitflags]
1515
#[repr(u8)]
1616
#[derive(Debug, Clone, Copy, PartialEq, Eq, TryFromPrimitive, IntoPrimitive)]
17+
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
1718
pub enum HotkeyModifier {
1819
/// Shift key modifier.
1920
Shift = convert(HOTKEYF_SHIFT),
@@ -72,6 +73,7 @@ impl HotkeyModifier {
7273
///
7374
/// See also <https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nf-shobjidl_core-ishelllinkw-gethotkey>.
7475
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
76+
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
7577
pub struct Hotkey {
7678
/// Virtual key code
7779
key: VirtualKey,

src/icon.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use std::{
55

66
/// Icon resource used by a Windows shortcut.
77
#[derive(Debug, Clone, Default)]
8+
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
89
pub struct Icon {
910
/// Path to the file containing the icon resource.
1011
///

src/shortcut.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ use crate::{
2727
///
2828
/// See also <https://learn.microsoft.com/en-us/windows/win32/api/shobjidl_core/nn-shobjidl_core-ishelllinka>
2929
#[derive(Debug, Clone, Default)]
30+
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
3031
pub struct Shortcut {
3132
/// Path to the target executable or file.
3233
pub target_path: Option<PathBuf>,

src/virtual_key.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@ const fn convert(key: VIRTUAL_KEY) -> u8 {
1515
///
1616
/// See: <https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes>
1717
#[repr(u8)]
18-
#[derive(Debug, Clone, Copy, PartialEq, Eq, FromPrimitive, IntoPrimitive)]
18+
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
19+
#[derive(
20+
Debug, Clone, Copy, PartialEq, Eq, FromPrimitive, IntoPrimitive, PartialOrd, Ord, Hash,
21+
)]
1922
pub enum VirtualKey {
2023
// 0x01 - 0x06: Mouse buttons (documented order)
2124
/// Left mouse button

src/window_state.rs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,12 @@ use windows::Win32::UI::WindowsAndMessaging::{
66

77
/// Initial window display state for a launched application.
88
///
9-
/// See also <https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-showwindow>
9+
/// See <https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-showwindow>
1010
#[repr(i32)]
11-
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, IntoPrimitive, FromPrimitive)]
11+
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
12+
#[derive(
13+
Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, IntoPrimitive, FromPrimitive,
14+
)]
1215
pub enum WindowState {
1316
/// Normal window (`SW_SHOWNORMAL`).
1417
///

0 commit comments

Comments
 (0)