1use crate::namespace::{
2 connection::*, heartbeat::*, media::*, multizone::*, receiver::*, Custom, NamespaceUrn,
3};
4
5#[derive(Serialize, Deserialize, Clone, Debug)]
6#[allow(clippy::large_enum_variant)]
7#[serde(untagged)]
8pub enum Payload {
9 Connection(Connection),
10 Heartbeat(Heartbeat),
11 Media(Media),
12 Multizone(Multizone),
13 Receiver(Receiver),
14 Custom(Custom),
16}
17
18impl Payload {
19 pub fn namespace(&self) -> NamespaceUrn {
20 match self {
21 Payload::Connection(_) => NamespaceUrn::Connection,
22 Payload::Heartbeat(_) => NamespaceUrn::Heartbeat,
23 Payload::Media(_) => NamespaceUrn::Media,
24 Payload::Multizone(_) => NamespaceUrn::Multizone,
25 Payload::Receiver(_) => NamespaceUrn::Receiver,
26 Payload::Custom(pl) => pl.namespace.clone(),
27 }
28 }
29}