use serde::{Serialize, Deserialize};
type StrBuf = str_buf::StrBuf<32>;
use crate::version::Version;
use crate::id::Id;
#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
#[serde(deny_unknown_fields)]
pub struct Request<P, T=StrBuf> {
#[serde(default)]
pub jsonrpc: Version,
pub method: T,
#[serde(skip_serializing_if = "Option::is_none")]
pub params: Option<P>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<Id>,
}
impl<P, T> Request<P, T> {
pub const fn is_notification(&self) -> bool {
self.id.is_none()
}
}