use serde::Serializer;
pub mod applications;
pub mod asterisk;
pub mod bridges;
pub mod channels;
pub mod client;
pub mod device_stats;
pub mod endpoints;
pub mod events;
pub mod mailboxes;
pub mod playbacks;
pub mod recordings;
pub mod sounds;
pub mod params {
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Default)]
pub enum Direction {
#[default]
#[serde(rename = "both")]
Both,
#[serde(rename = "out")]
Out,
#[serde(rename = "in")]
In,
}
#[derive(Clone, Debug, PartialEq, Serialize, Default)]
pub enum IfExists {
#[serde(rename = "overwrite")]
#[default]
Overwrite,
#[serde(rename = "fail")]
Fail,
#[serde(rename = "append")]
Append,
}
#[derive(Clone, Debug, PartialEq, Serialize, Default)]
pub enum TerminateOn {
#[serde(rename = "none")]
#[default]
None,
#[serde(rename = "any")]
Any,
#[serde(rename = "*")]
Start,
#[serde(rename = "#")]
Hash,
}
}
fn concat_option_str<S>(x: &Option<Vec<String>>, s: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
match x {
Some(x) => s.serialize_str(x.join(",").as_str()),
None => s.serialize_none(),
}
}
fn concat_str<S>(x: &[String], s: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
s.serialize_str(x.join(",").as_str())
}