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