diff --git a/arirs/src/error.rs b/arirs/src/error.rs new file mode 100644 index 0000000..db9a5ca --- /dev/null +++ b/arirs/src/error.rs @@ -0,0 +1,25 @@ +use thiserror::Error; +use tokio::task::JoinError; +use tokio_tungstenite::tungstenite; + +pub type Result = std::result::Result; + +#[derive(Debug, Error)] +pub enum AriError { + #[error("URL parsing error")] + UrlParseError(#[from] url::ParseError), + #[error("WebSocket error")] + TungsteniteError(#[from] tungstenite::Error), + #[error("HTTP Request error")] + ReqwestError(#[from] reqwest::Error), + #[error("Join Error")] + JoinError(#[from] JoinError), + #[error("Unknown error occurred: {0}")] + Unknown(String), +} + +impl From for AriError { + fn from(err: tungstenite::error::UrlError) -> Self { + AriError::TungsteniteError(err.into()) + } +} diff --git a/arirs/src/event.rs b/arirs/src/event.rs new file mode 100644 index 0000000..43ecf2b --- /dev/null +++ b/arirs/src/event.rs @@ -0,0 +1,20 @@ +use serde::{Deserialize, Serialize}; + +use crate::{channel::*, device::DeviceStateChanged}; + +#[derive(Serialize, Deserialize, Debug)] +#[serde(tag = "type")] +pub enum Event { + StasisStart(StasisStart), + StasisEnd(StasisEnd), + ChannelCreated(ChannelCreated), + ChannelDestroyed(ChannelDestroyed), + ChannelVarset(ChannelVarset), + ChannelHangupRequest(ChannelHangupRequest), + ChannelDialplan(ChannelDialplan), + ChannelStateChange(ChannelStateChange), + ChannelDtmfReceived(ChannelDtmfReceived), + DeviceStateChanged(DeviceStateChanged), + #[serde(other)] + Unknown, +} diff --git a/arirs/src/lib.rs b/arirs/src/lib.rs index 939858a..94800c1 100644 --- a/arirs/src/lib.rs +++ b/arirs/src/lib.rs @@ -1,13 +1,3 @@ -use channel::{ - ChannelCreated, ChannelDestroyed, ChannelDialplan, ChannelDtmfReceived, ChannelHangupRequest, ChannelStateChange, ChannelVarset, - StasisEnd, StasisStart, -}; -use device::DeviceStateChanged; -use serde::{Deserialize, Serialize}; -use thiserror::Error; -use tokio::task::JoinError; -use tokio_tungstenite::tungstenite; - pub mod bridge; pub mod channel; pub mod client; @@ -17,41 +7,8 @@ pub mod recording; pub mod rtp_statistics; pub mod variable; -pub type Result = std::result::Result; - -#[derive(Debug, Error)] -pub enum AriError { - #[error("URL parsing error")] - UrlParseError(#[from] url::ParseError), - #[error("WebSocket error")] - TungsteniteError(#[from] tungstenite::Error), - #[error("HTTP Request error")] - ReqwestError(#[from] reqwest::Error), - #[error("Join Error")] - JoinError(#[from] JoinError), - #[error("Unknown error occurred: {0}")] - Unknown(String), -} - -impl From for AriError { - fn from(err: tungstenite::error::UrlError) -> Self { - AriError::TungsteniteError(err.into()) - } -} +mod error; +pub use error::{AriError, Result}; -#[derive(Serialize, Deserialize, Debug)] -#[serde(tag = "type")] -pub enum Event { - StasisStart(StasisStart), - StasisEnd(StasisEnd), - ChannelCreated(ChannelCreated), - ChannelDestroyed(ChannelDestroyed), - ChannelVarset(ChannelVarset), - ChannelHangupRequest(ChannelHangupRequest), - ChannelDialplan(ChannelDialplan), - ChannelStateChange(ChannelStateChange), - ChannelDtmfReceived(ChannelDtmfReceived), - DeviceStateChanged(DeviceStateChanged), - #[serde(other)] - Unknown, -} +mod event; +pub use event::Event;