xref: /xiu/library/streamhub/src/stream.rs (revision 80f20d70)
1 use serde::Serialize;
2 use std::fmt;
3 
4 #[derive(Debug, Clone, Eq, PartialEq, Hash, Serialize, Default)]
5 pub enum StreamIdentifier {
6     #[default]
7     Unkonwn,
8     Rtmp {
9         app_name: String,
10         stream_name: String,
11     },
12     Rtsp {
13         stream_path: String,
14     },
15     WebRTC {
16         app_name: String,
17         stream_name: String,
18     },
19 }
20 impl fmt::Display for StreamIdentifier {
fmt(&self, f: &mut fmt::Formatter) -> fmt::Result21     fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
22         match self {
23             StreamIdentifier::Rtmp {
24                 app_name,
25                 stream_name,
26             } => {
27                 write!(f, "RTMP - app_name: {app_name}, stream_name: {stream_name}")
28             }
29             StreamIdentifier::Rtsp {
30                 stream_path: stream_name,
31             } => {
32                 write!(f, "RTSP - stream_name: {stream_name}")
33             }
34             StreamIdentifier::WebRTC {
35                 app_name,
36                 stream_name,
37             } => {
38                 write!(
39                     f,
40                     "WebRTC - app_name: {app_name}, stream_name: {stream_name}"
41                 )
42             }
43             StreamIdentifier::Unkonwn => {
44                 write!(f, "Unkonwn")
45             }
46         }
47     }
48 }
49