musicman_protocols/
interface.rs1use crate::*;
2use serde::{Deserialize, Serialize};
3use uuid::Uuid;
4
5#[derive(Serialize, Deserialize, PartialEq, Clone, Debug, Eq)]
6pub enum Request {
7 Play { track_id: Uuid }, Playlist(PlaylistRequest),
9 Meta { track_id: Uuid },
10 Search(SearchType),
11}
12
13#[derive(Serialize, Deserialize, PartialEq, Clone, Debug, Eq)]
14pub enum Response {
15 SongHeader {
16 track_id: Uuid,
17 channels: u16,
18 sample_rate: u32,
19 },
20 SongChunk {
21 track_id: Uuid,
22 data: Vec<i16>,
23 index: u32,
24 },
25 EndOfStream {
26 track_id: Uuid,
27 },
28
29 Playlist(PlaylistResponse),
30 SearchResults(Vec<SongMeta>),
31 Meta(SongMeta),
32 Error {
33 message: String,
34 },
35}