Coverage Report

Created: 2022-07-04 16:17

src/common.rs
Line
Count
Source (jump to first uncovered line)
1
//! Common data structures shared between requests, responses and events.
2
3
use bitflags::bitflags;
4
use serde::{Deserialize, Serialize};
5
6
use crate::Error;
7
8
/// Monitoring type for audio outputs.
9
6
#[derive(
Clone0
, Copy,
D2
ebu
g2
,
s2
erde::Serializ
e2
,
s3
erd
e::Deserializ1
e)]
Unexecuted instantiation: <obws::common::MonitorType as core::clone::Clone>::clone
Unexecuted instantiation: <obws::common::MonitorType as core::clone::Clone>::clone
Unexecuted instantiation: <obws::common::MonitorType as core::clone::Clone>::clone
<obws::common::MonitorType as core::fmt::Debug>::fmt
Line
Count
Source
9
2
#[derive(Clone, Copy, Debug, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: <obws::common::MonitorType as core::fmt::Debug>::fmt
<obws::common::MonitorType as serde::ser::Serialize>::serialize::<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>>
Line
Count
Source
9
2
#[derive(Clone, Copy, Debug, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: <obws::common::MonitorType as serde::ser::Serialize>::serialize::<_>
Unexecuted instantiation: <obws::common::MonitorType as serde::ser::Serialize>::serialize::<_>
Unexecuted instantiation: <obws::common::MonitorType as serde::de::Deserialize>::deserialize::<serde::__private::de::missing_field::MissingFieldDeserializer<serde_json::error::Error>>
<<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<serde::__private::de::content::EnumDeserializer<serde_json::error::Error>>
Line
Count
Source
9
2
#[derive(Clone, Copy, Debug, serde::Serialize, 
serd1
e::Deserializ1
e)]
<<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde::de::value::StringDeserializer<serde_json::error::Error>>
Line
Count
Source
9
1
#[derive(Clone, Copy, Debug, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: <<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<serde_json::error::Error>
<obws::common::MonitorType as serde::de::Deserialize>::deserialize::<serde_json::value::Value>
Line
Count
Source
9
1
#[derive(Clone, Copy, Debug, serde::Serialize, serde::Deserialize)]
<<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error>
Line
Count
Source
9
3
#[derive(Clone, Copy, Debug, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: <<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<serde_json::value::de::EnumDeserializer>
Unexecuted instantiation: <<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<serde_json::error::Error>
<<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde::__private::de::content::ContentDeserializer<serde_json::error::Error>>
Line
Count
Source
9
2
#[derive(Clone, Copy, Debug, serde::Serialize, serde::Deserialize)]
<obws::common::MonitorType as serde::de::Deserialize>::deserialize::<serde::__private::de::content::ContentDeserializer<serde_json::error::Error>>
Line
Count
Source
9
2
#[derive(Clone, Copy, Debug, serde::Serialize, serde::Deserialize)]
Unexecuted instantiation: <<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_>
Unexecuted instantiation: <<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_>
Unexecuted instantiation: <<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_>
Unexecuted instantiation: <obws::common::MonitorType as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <obws::common::MonitorType as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_>
Unexecuted instantiation: <<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_>
Unexecuted instantiation: <<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_>
Unexecuted instantiation: <<obws::common::MonitorType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting
10
pub enum MonitorType {
11
    /// No monitoring.
12
    #[serde(rename = "OBS_MONITORING_TYPE_NONE")]
13
    None,
14
    /// Only monitor but don't output any sounds.
15
    #[serde(rename = "OBS_MONITORING_TYPE_MONITOR_ONLY")]
16
    MonitorOnly,
17
    /// Monitor the audio and output it at the same time.
18
    #[serde(rename = "OBS_MONITORING_TYPE_MONITOR_AND_OUTPUT")]
19
    MonitorAndOutput,
20
}
21
22
bitflags! {
23
    /// Different flags for font display that can be combined.
24
    pub struct FontFlags: u8 {
25
        /// Make the text appear thicker.
26
        const BOLD = 1;
27
        /// Make the text appear cursive.
28
        const ITALIC = 2;
29
        /// Underline the text with a straight line.
30
        const UNDERLINE = 4;
31
        /// Strikeout the text.
32
        const STRIKEOUT = 8;
33
    }
34
}
35
36
impl TryFrom<u8> for FontFlags {
37
    type Error = Error;
38
39
0
    fn try_from(value: u8) -> Result<Self, Self::Error> {
40
0
        Self::from_bits(value).ok_or(Error::UnknownFlags(value))
41
0
    }
Unexecuted instantiation: <obws::common::FontFlags as core::convert::TryFrom<u8>>::try_from
Unexecuted instantiation: <obws::common::FontFlags as core::convert::TryFrom<u8>>::try_from
42
}
43
44
impl From<FontFlags> for u8 {
45
0
    fn from(value: FontFlags) -> Self {
46
0
        value.bits
47
0
    }
Unexecuted instantiation: <u8 as core::convert::From<obws::common::FontFlags>>::from
Unexecuted instantiation: <u8 as core::convert::From<obws::common::FontFlags>>::from
48
}
49
50
bitflags! {
51
    /// Alignment for different items on the scene that is described in two axis. The default is
52
    /// center for both axis.
53
    ///
54
    /// For example, only using `LEFT` would arrange the target to the left horizontally and
55
    /// centered vertically. To align to the top right, the alignments can be combined to
56
    /// `LEFT | TOP`. Combining both values for a single axis is invalid, like `LEFT | RIGHT`.
57
0
    #[derive(Serialize, Deserialize)]
Unexecuted instantiation: <obws::common::Alignment as serde::ser::Serialize>::serialize::<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>>
Unexecuted instantiation: <obws::common::Alignment as serde::ser::Serialize>::serialize::<_>
Unexecuted instantiation: <obws::common::Alignment as serde::ser::Serialize>::serialize::<_>
Unexecuted instantiation: <obws::common::Alignment as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <obws::common::Alignment as serde::de::Deserialize>::deserialize::<_>::{closure#0}
Unexecuted instantiation: <obws::common::Alignment as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <obws::common::Alignment as serde::de::Deserialize>::deserialize::<_>::{closure#0}
58
    #[serde(transparent)]
59
    pub struct Alignment: u8 {
60
        /// Align to the center.
61
        const CENTER = 0;
62
        /// Align to the left side.
63
        const LEFT = 1 << 0;
64
        /// Align to the right side.
65
        const RIGHT = 1 << 1;
66
        /// Align to the top.
67
        const TOP = 1 << 2;
68
        /// Align to the bottom.
69
        const BOTTOM = 1 << 3;
70
    }
71
}
72
73
impl TryFrom<u8> for Alignment {
74
    type Error = Error;
75
76
2
    fn try_from(value: u8) -> Result<Self, Self::Error> {
77
2
        Self::from_bits(value).ok_or(Error::UnknownFlags(value))
78
2
    }
<obws::common::Alignment as core::convert::TryFrom<u8>>::try_from
Line
Count
Source
76
2
    fn try_from(value: u8) -> Result<Self, Self::Error> {
77
2
        Self::from_bits(value).ok_or(Error::UnknownFlags(value))
78
2
    }
Unexecuted instantiation: <obws::common::Alignment as core::convert::TryFrom<u8>>::try_from
79
}
80
81
impl From<Alignment> for u8 {
82
0
    fn from(value: Alignment) -> Self {
83
0
        value.bits
84
0
    }
Unexecuted instantiation: <u8 as core::convert::From<obws::common::Alignment>>::from
Unexecuted instantiation: <u8 as core::convert::From<obws::common::Alignment>>::from
85
}
86
87
/// Different kinds of bounds that can be applied to different items on the scene.
88
2
#[derive(
Clone0
, Copy,
D0
ebu
g0
, Serialize, Deserialize)]
Unexecuted instantiation: <obws::common::BoundsType as core::clone::Clone>::clone
Unexecuted instantiation: <obws::common::BoundsType as core::clone::Clone>::clone
Unexecuted instantiation: <obws::common::BoundsType as core::clone::Clone>::clone
Unexecuted instantiation: <obws::common::BoundsType as core::fmt::Debug>::fmt
Unexecuted instantiation: <obws::common::BoundsType as core::fmt::Debug>::fmt
<obws::common::BoundsType as serde::ser::Serialize>::serialize::<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>>
Line
Count
Source
88
2
#[derive(Clone, Copy, Debug, Serialize, Deserialize)]
Unexecuted instantiation: <obws::common::BoundsType as serde::ser::Serialize>::serialize::<_>
Unexecuted instantiation: <obws::common::BoundsType as serde::ser::Serialize>::serialize::<_>
Unexecuted instantiation: <<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde::__private::de::content::ContentDeserializer<serde_json::error::Error>>
Unexecuted instantiation: <obws::common::BoundsType as serde::de::Deserialize>::deserialize::<serde::__private::de::content::ContentDeserializer<serde_json::error::Error>>
Unexecuted instantiation: <<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<serde_json::error::Error>
<<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<serde_json::value::de::EnumDeserializer>
Line
Count
Source
88
1
#[derive(Clone, Copy, Debug, Serialize, Deserialize)]
Unexecuted instantiation: <obws::common::BoundsType as serde::de::Deserialize>::deserialize::<serde::__private::de::missing_field::MissingFieldDeserializer<serde_json::error::Error>>
Unexecuted instantiation: <<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<serde_json::error::Error>
Unexecuted instantiation: <<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<serde::__private::de::content::EnumDeserializer<serde_json::error::Error>>
<<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde::de::value::StringDeserializer<serde_json::error::Error>>
Line
Count
Source
88
1
#[derive(Clone, Copy, Debug, Serialize, Deserialize)]
<obws::common::BoundsType as serde::de::Deserialize>::deserialize::<serde_json::value::Value>
Line
Count
Source
88
1
#[derive(Clone, Copy, Debug, Serialize, Deserialize)]
<<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error>
Line
Count
Source
88
1
#[derive(Clone, Copy, Debug, Serialize, Deserialize)]
Unexecuted instantiation: <<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_>
Unexecuted instantiation: <<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <obws::common::BoundsType as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_>
Unexecuted instantiation: <<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_>
Unexecuted instantiation: <<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_>
Unexecuted instantiation: <<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <obws::common::BoundsType as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_>
Unexecuted instantiation: <<obws::common::BoundsType as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_>
89
pub enum BoundsType {
90
    /// No bounds.
91
    #[serde(rename = "OBS_BOUNDS_NONE")]
92
    None,
93
    /// Stretch to bounds.
94
    #[serde(rename = "OBS_BOUNDS_STRETCH")]
95
    Stretch,
96
    /// Scale to inner bounds.
97
    #[serde(rename = "OBS_BOUNDS_SCALE_INNER")]
98
    ScaleInner,
99
    /// Scale to outer bounds.
100
    #[serde(rename = "OBS_BOUNDS_SCALE_OUTER")]
101
    ScaleOuter,
102
    /// Scale to width of bounds.
103
    #[serde(rename = "OBS_BOUNDS_SCALE_TO_WIDTH")]
104
    ScaleToWidth,
105
    /// Scale to height of bounds.
106
    #[serde(rename = "OBS_BOUNDS_SCALE_TO_HEIGHT")]
107
    ScaleToHeight,
108
    /// Maximum size only.
109
    #[serde(rename = "OBS_BOUNDS_MAX_ONLY")]
110
    MaxOnly,
111
}
112
113
/// Different kind of media actions that can be performed (or happen in events).
114
2
#[derive(
Clone0
, Copy,
D1
ebu
g1
,
S1
erializ
e1
, Deserialize)]
Unexecuted instantiation: <obws::common::MediaAction as core::clone::Clone>::clone
Unexecuted instantiation: <obws::common::MediaAction as core::clone::Clone>::clone
Unexecuted instantiation: <obws::common::MediaAction as core::clone::Clone>::clone
<obws::common::MediaAction as core::fmt::Debug>::fmt
Line
Count
Source
114
1
#[derive(Clone, Copy, Debug, Serialize, Deserialize)]
Unexecuted instantiation: <obws::common::MediaAction as core::fmt::Debug>::fmt
<obws::common::MediaAction as serde::ser::Serialize>::serialize::<&mut serde_json::ser::Serializer<&mut alloc::vec::Vec<u8>>>
Line
Count
Source
114
1
#[derive(Clone, Copy, Debug, Serialize, Deserialize)]
Unexecuted instantiation: <obws::common::MediaAction as serde::ser::Serialize>::serialize::<_>
Unexecuted instantiation: <obws::common::MediaAction as serde::ser::Serialize>::serialize::<_>
Unexecuted instantiation: <obws::common::MediaAction as serde::de::Deserialize>::deserialize::<serde_json::value::Value>
<obws::common::MediaAction as serde::de::Deserialize>::deserialize::<serde::__private::de::content::ContentDeserializer<serde_json::error::Error>>
Line
Count
Source
114
1
#[derive(Clone, Copy, Debug, Serialize, Deserialize)]
Unexecuted instantiation: <<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde::de::value::StringDeserializer<serde_json::error::Error>>
Unexecuted instantiation: <obws::common::MediaAction as serde::de::Deserialize>::deserialize::<serde::__private::de::missing_field::MissingFieldDeserializer<serde_json::error::Error>>
<<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<serde::__private::de::content::ContentDeserializer<serde_json::error::Error>>
Line
Count
Source
114
1
#[derive(Clone, Copy, Debug, Serialize, Deserialize)]
Unexecuted instantiation: <<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<serde_json::value::de::EnumDeserializer>
<<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<serde_json::error::Error>
Line
Count
Source
114
1
#[derive(Clone, Copy, Debug, Serialize, Deserialize)]
<<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<serde::__private::de::content::EnumDeserializer<serde_json::error::Error>>
Line
Count
Source
114
1
#[derive(Clone, Copy, Debug, Serialize, Deserialize)]
Unexecuted instantiation: <<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<serde_json::error::Error>
Unexecuted instantiation: <<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<serde_json::error::Error>
Unexecuted instantiation: <<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_>
Unexecuted instantiation: <<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_>
Unexecuted instantiation: <<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_>
Unexecuted instantiation: <<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <obws::common::MediaAction as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_u64::<_>
Unexecuted instantiation: <<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_bytes::<_>
Unexecuted instantiation: <obws::common::MediaAction as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::visit_str::<_>
Unexecuted instantiation: <<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__FieldVisitor as serde::de::Visitor>::expecting
Unexecuted instantiation: <<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__Field as serde::de::Deserialize>::deserialize::<_>
Unexecuted instantiation: <<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::visit_enum::<_>
Unexecuted instantiation: <<obws::common::MediaAction as serde::de::Deserialize>::deserialize::__Visitor as serde::de::Visitor>::expecting
115
pub enum MediaAction {
116
    /// No media action.
117
    #[serde(rename = "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_NONE")]
118
    None,
119
    /// Start media playback.
120
    #[serde(rename = "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_PLAY")]
121
    Play,
122
    /// Pause the current playback.
123
    #[serde(rename = "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_PAUSE")]
124
    Pause,
125
    /// Stop media playback, resetting the playback position back to the start.
126
    #[serde(rename = "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_STOP")]
127
    Stop,
128
    /// Reset playback to the start and continue playing.
129
    #[serde(rename = "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_RESTART")]
130
    Restart,
131
    /// Play the next media in the list.
132
    #[serde(rename = "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_NEXT")]
133
    Next,
134
    /// Play the previous media in the list.
135
    #[serde(rename = "OBS_WEBSOCKET_MEDIA_INPUT_ACTION_PREVIOUS")]
136
    Previous,
137
}