diff --git a/client/src/lib.rs b/client/src/lib.rs index 5bf7659..2b729c9 100644 --- a/client/src/lib.rs +++ b/client/src/lib.rs @@ -1,11 +1,14 @@ +use protocol::Error; + pub mod gui; pub mod media; -pub mod webrtc; pub mod signal; +pub mod webrtc; pub async fn sleep(timeout: u16) { let sleep_promise = web_sys::js_sys::Promise::new(&mut |resolve, _| { web_sys::window() + .ok_or(Error::Window) .unwrap() .set_timeout_with_callback_and_timeout_and_arguments_0(&resolve, timeout as i32) .unwrap(); diff --git a/client/src/media.rs b/client/src/media.rs index ea48e01..744fb41 100644 --- a/client/src/media.rs +++ b/client/src/media.rs @@ -13,7 +13,7 @@ use crate::webrtc::WebRTC; pub async fn get_audio_stream() -> Result { let media_devices = window() - .ok_or(Error::MediaStream("Accessing Window".to_owned()))? + .ok_or(Error::Window)? .navigator() .media_devices() .map_err(|err_val| Error::MediaStream(format!("{:?}", err_val)))?; @@ -31,7 +31,7 @@ pub async fn get_audio_stream() -> Result { .map_err(|err_val| Error::MediaStream(format!("{:?}", err_val)))?; let media_stream = JsFuture::from(media_stream_promise) .await - .map_err(|err_val| Error::MediaStream(format!("{:?}", err_val)))?; + .map_err(|err_val| Error::Permission(format!("{:?}", err_val)))?; let media_stream = media_stream.unchecked_ref::(); let audio_stream_tracks = media_stream.get_audio_tracks(); diff --git a/protocol/src/lib.rs b/protocol/src/lib.rs index 6e559f3..c3520e7 100644 --- a/protocol/src/lib.rs +++ b/protocol/src/lib.rs @@ -10,6 +10,7 @@ pub struct User { #[derive(Debug, Clone, Serialize, Deserialize)] pub enum Error { + Window, Permission(String), MediaPlay(String), MediaStream(String), @@ -42,6 +43,7 @@ impl std::error::Error for Error { impl Display for Error { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { + Error::Window => write!(f, "Window"), Error::Permission(permission_cause) => write!(f, "Permission | {}", permission_cause), Error::MediaPlay(err_val) => write!(f, "Media Play | {}", err_val), Error::MediaStream(err_val) => write!(f, "Media Stream | {}", err_val),