use serde::{Deserialize, Serialize};
use std::borrow::Cow;
#[derive(Debug, Serialize, Deserialize)]
pub(crate) struct ConfiguredDevice<DeviceType> {
#[serde(rename = "DeviceName")]
pub(crate) name: String,
#[serde(rename = "DeviceType")]
pub(crate) ty: DeviceType,
#[serde(rename = "DeviceNumber")]
pub(crate) number: usize,
#[serde(rename = "UniqueID")]
pub(crate) unique_id: String,
}
#[derive(Debug, Serialize, Deserialize, derive_more::Display)]
#[display("{server_name} v{manufacturer_version} by {manufacturer}")]
#[serde(rename_all = "PascalCase")]
pub struct ServerInfo {
pub server_name: Cow<'static, str>,
pub manufacturer: Cow<'static, str>,
pub manufacturer_version: Cow<'static, str>,
pub location: Cow<'static, str>,
}
#[doc(hidden)]
#[macro_export]
macro_rules! CargoServerInfo_1bc8c806_8cb9_4aaf_b57a_8f94c4d1b59d {
() => {
const {
use std::borrow::Cow;
$crate::api::ServerInfo {
server_name: Cow::Borrowed(env!("CARGO_PKG_NAME")),
manufacturer: Cow::Borrowed(env!("CARGO_PKG_AUTHORS")),
manufacturer_version: Cow::Borrowed(env!("CARGO_PKG_VERSION")),
location: {
let homepage = env!("CARGO_PKG_HOMEPAGE");
Cow::Borrowed(if homepage.is_empty() {
"Unknown"
} else {
homepage
})
},
}
}
};
}
#[doc(inline)]
pub use CargoServerInfo_1bc8c806_8cb9_4aaf_b57a_8f94c4d1b59d as CargoServerInfo;