comparison src/beefweb.rs @ 6:482bd968725f default tip

beefweb: remove unnecessary (de)serialize derives
author Paper <paper@tflc.us>
date Mon, 06 Apr 2026 09:54:05 -0400
parents 26f695129c86
children
comparison
equal deleted inserted replaced
5:8f71820abe71 6:482bd968725f
19 */ 19 */
20 20
21 /* Fuck off, I don't care. */ 21 /* Fuck off, I don't care. */
22 #![allow(nonstandard_style)] 22 #![allow(nonstandard_style)]
23 23
24 #[derive(serde::Serialize, serde::Deserialize, Debug)] 24 #[derive(serde::Deserialize, Debug)]
25 pub struct PlayerInfo { 25 pub struct PlayerInfo {
26 pub name: String, 26 pub name: String,
27 pub title: String, 27 pub title: String,
28 pub version: String, 28 pub version: String,
29 // fuck camel case 29 // fuck camel case
30 #[serde(rename = "pluginVersion")] 30 #[serde(rename = "pluginVersion")]
31 pub plugin_version: String, 31 pub plugin_version: String,
32 } 32 }
33 33
34 #[derive(serde::Serialize, serde::Deserialize, Debug)] 34 #[derive(serde::Deserialize, Debug)]
35 pub struct ActiveItemInfo { 35 pub struct ActiveItemInfo {
36 #[serde(rename = "playlistId")] 36 #[serde(rename = "playlistId")]
37 pub playlist_id: String, 37 pub playlist_id: String,
38 #[serde(rename = "playlistIndex")] 38 #[serde(rename = "playlistIndex")]
39 pub playlist_index: i64, 39 pub playlist_index: i64,
41 pub position: f64, 41 pub position: f64,
42 pub duration: f64, 42 pub duration: f64,
43 pub columns: Vec<String>, 43 pub columns: Vec<String>,
44 } 44 }
45 45
46 #[derive(serde::Serialize, serde::Deserialize, Debug)] 46 #[derive(serde::Deserialize, Debug)]
47 pub enum VolumeType { 47 pub enum VolumeType {
48 #[serde(rename = "db")] 48 #[serde(rename = "db")]
49 DB, 49 DB,
50 #[serde(rename = "linear")] 50 #[serde(rename = "linear")]
51 LINEAR, 51 LINEAR,
52 #[serde(rename = "upDown")] 52 #[serde(rename = "upDown")]
53 UPDOWN, /* ??? */ 53 UPDOWN, /* ??? */
54 } 54 }
55 55
56 #[derive(serde::Serialize, serde::Deserialize, Debug)] 56 #[derive(serde::Deserialize, Debug)]
57 pub struct VolumeInfo { 57 pub struct VolumeInfo {
58 pub r#type: VolumeType, 58 pub r#type: VolumeType,
59 pub min: f64, 59 pub min: f64,
60 pub max: f64, 60 pub max: f64,
61 pub value: f64, 61 pub value: f64,
62 #[serde(rename = "isMuted")] 62 #[serde(rename = "isMuted")]
63 pub muted: bool, 63 pub muted: bool,
64 } 64 }
65 65
66 #[derive(serde::Serialize, serde::Deserialize, Debug)] 66 #[derive(serde::Deserialize, Debug)]
67 pub struct ApiPermissions { 67 pub struct ApiPermissions {
68 #[serde(rename = "changePlaylists")] 68 #[serde(rename = "changePlaylists")]
69 pub change_playlists: bool, 69 pub change_playlists: bool,
70 #[serde(rename = "changeOutput")] 70 #[serde(rename = "changeOutput")]
71 pub change_output: bool, 71 pub change_output: bool,
72 #[serde(rename = "changeClientConfig")] 72 #[serde(rename = "changeClientConfig")]
73 pub change_client_config: bool, 73 pub change_client_config: bool,
74 } 74 }
75 75
76 #[derive(serde::Serialize, serde::Deserialize, Debug)] 76 #[derive(serde::Deserialize, Debug)]
77 pub enum PlaybackState { 77 pub enum PlaybackState {
78 #[serde(rename = "stopped")] 78 #[serde(rename = "stopped")]
79 STOPPED, 79 STOPPED,
80 #[serde(rename = "playing")] 80 #[serde(rename = "playing")]
81 PLAYING, 81 PLAYING,
93 SHUFFLE_TRACKS, 93 SHUFFLE_TRACKS,
94 SHUFFLE_ALBUMS, 94 SHUFFLE_ALBUMS,
95 SHUFFLE_FOLDERS, 95 SHUFFLE_FOLDERS,
96 } 96 }
97 97
98 #[derive(serde::Serialize, serde::Deserialize, Debug)] 98 #[derive(serde::Deserialize, Debug)]
99 #[serde(tag = "type")] 99 #[serde(tag = "type")]
100 pub enum Options { 100 pub enum Options {
101 #[serde(rename = "enum")] 101 #[serde(rename = "enum")]
102 Enumeration { 102 Enumeration {
103 #[serde(rename = "enumNames")] 103 #[serde(rename = "enumNames")]
112 name: String, 112 name: String,
113 value: bool, 113 value: bool,
114 }, 114 },
115 } 115 }
116 116
117 #[derive(serde::Serialize, serde::Deserialize, Debug)] 117 #[derive(serde::Deserialize, Debug)]
118 pub struct Player { 118 pub struct Player {
119 pub info: PlayerInfo, 119 pub info: PlayerInfo,
120 #[serde(rename = "activeItem")] 120 #[serde(rename = "activeItem")]
121 pub active_item: ActiveItemInfo, 121 pub active_item: ActiveItemInfo,
122 /* XXX actually an enum */ 122 /* XXX actually an enum */
135 #[serde(skip_serializing_if = "Option::is_none")] 135 #[serde(skip_serializing_if = "Option::is_none")]
136 playbackModes: Option<Vec<String>>, 136 playbackModes: Option<Vec<String>>,
137 } 137 }
138 138
139 /* {"player": {struct Player}} */ 139 /* {"player": {struct Player}} */
140 #[derive(serde::Serialize, serde::Deserialize, Debug)] 140 #[derive(serde::Deserialize, Debug)]
141 struct PlayerHelper { 141 struct PlayerHelper {
142 player: Player, 142 player: Player,
143 } 143 }
144 144
145 #[derive(serde::Serialize, serde::Deserialize, Debug)] 145 #[derive(serde::Serialize, Debug)]
146 #[serde(untagged)] 146 #[serde(untagged)]
147 enum SetPlayerOption { 147 enum SetPlayerOption {
148 Integer { id: String, value: i64 }, 148 Integer { id: String, value: i64 },
149 Boolean { id: String, value: bool }, 149 Boolean { id: String, value: bool },
150 } 150 }
151 151
152 #[derive(serde::Serialize, serde::Deserialize, Debug)] 152 #[derive(serde::Serialize, Debug)]
153 #[serde_with::skip_serializing_none] 153 #[serde_with::skip_serializing_none]
154 struct SetPlayer { 154 struct SetPlayer {
155 /* dB */ 155 /* dB */
156 volume: Option<f64>, 156 volume: Option<f64>,
157 /* ??? */ 157 /* ??? */
164 relative_position: Option<f64>, 164 relative_position: Option<f64>,
165 /* teehee */ 165 /* teehee */
166 options: Option<Vec<SetPlayerOption>>, 166 options: Option<Vec<SetPlayerOption>>,
167 } 167 }
168 168
169 #[derive(serde::Serialize, serde::Deserialize, Debug)] 169 #[derive(serde::Deserialize, Debug)]
170 pub struct PlaylistItem { 170 pub struct PlaylistItem {
171 pub columns: Vec<String> 171 pub columns: Vec<String>
172 } 172 }
173 173
174 #[derive(serde::Serialize, serde::Deserialize, Debug)] 174 #[derive(serde::Deserialize, Debug)]
175 pub struct PlaylistItems { 175 pub struct PlaylistItems {
176 pub offset: i64, 176 pub offset: i64,
177 #[serde(rename = "totalCount")] 177 #[serde(rename = "totalCount")]
178 pub total_count: i64, 178 pub total_count: i64,
179 pub items: Vec<PlaylistItem>, 179 pub items: Vec<PlaylistItem>,
180 } 180 }
181 181
182 #[derive(serde::Serialize, serde::Deserialize, Debug)] 182 #[derive(serde::Deserialize, Debug)]
183 struct PlaylistItemsHelper { 183 struct PlaylistItemsHelper {
184 #[serde(rename = "playlistItems")] 184 #[serde(rename = "playlistItems")]
185 playlist_items: PlaylistItems, 185 playlist_items: PlaylistItems,
186 } 186 }
187 187
188 #[derive(serde::Serialize, serde::Deserialize, Debug)] 188 #[derive(serde::Deserialize, Debug)]
189 pub struct Playlist { 189 pub struct Playlist {
190 pub id: String, 190 pub id: String,
191 pub index: i64, 191 pub index: i64,
192 pub title: String, 192 pub title: String,
193 #[serde(rename = "isCurrent")] 193 #[serde(rename = "isCurrent")]
196 pub item_count: i64, 196 pub item_count: i64,
197 #[serde(rename = "totalTime")] 197 #[serde(rename = "totalTime")]
198 pub total_time: f64, 198 pub total_time: f64,
199 } 199 }
200 200
201 #[derive(serde::Serialize, serde::Deserialize, Debug)] 201 #[derive(serde::Deserialize, Debug)]
202 pub struct Playlists { 202 pub struct Playlists {
203 pub playlists: Vec<Playlist>, 203 pub playlists: Vec<Playlist>,
204 } 204 }
205 205
206 /* --- NOW, THE ACTUAL BEEFWEB THING */ 206 /* --- NOW, THE ACTUAL BEEFWEB THING */