srs-client 0.2.1

Provides bindings for the main functionalities of the SRS
Documentation
use crate::http_api::{
    client::Client,
    common::Version,
    feature::FeaturesData,
    meminfos::MemInfos,
    rusages::Rusages,
    self_proc_stats::SelfProcStats,
    stream::Stream,
    summary::{Tests, Urls},
    system_proc_stats::SystemProcStats,
    vhost::Vhost,
};
use derive_more::{Display, Error};
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Debug)]
pub struct SrsClientResp {
    pub code: i64,
    pub server: String,
    pub service: String,
    pub pid: String,
    #[serde(flatten)]
    pub data: SrsClientRespData,
}

#[derive(Serialize, Deserialize, Debug)]
#[serde(untagged)]
pub enum SrsClientRespData {
    Streams { streams: Vec<Stream> },
    Clients { clients: Vec<Client> },
    Vhosts { vhosts: Vec<Vhost> },
    Summary { urls: Box<Urls>, tests: Tests },
    Version { data: Version },
    Feature { data: FeaturesData },
    Rusages { data: Rusages },
    SelfProcStats { data: Box<SelfProcStats> },
    SystemProcStats { data: SystemProcStats },
    MemInfos { data: MemInfos },
}