use std::fmt::Debug;
#[cfg(doc)]
use crate::command::CommandLevel;
use serde::Serialize;
use crate::auth_data::AuthData;
#[derive(Debug, Serialize)]
pub struct Request<P = String> {
pub cmd: &'static str,
#[serde(flatten)]
#[serde(skip_serializing_if = "Option::is_none")]
pub auth_data: Option<AuthData>,
#[serde(rename = "param")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameter: Option<P>,
}
impl<P: Serialize> Request<P> {
pub fn new(cmd: &'static str, auth_data: Option<AuthData>, parameter: Option<P>) -> Self {
Self {
cmd,
auth_data,
parameter,
}
}
}