use crate::{
data_transformation::{
Id,
format::{JsonRpcRequest, VerbatimRequest},
},
misc::Vector,
};
#[derive(Debug)]
pub struct PkgsAux<A, DRSR, TP> {
pub api: A,
pub byte_buffer: Vector<u8>,
pub drsr: DRSR,
pub tp: TP,
pub(crate) built_requests: Id,
}
impl<A, DRSR, TP> PkgsAux<A, DRSR, TP> {
#[inline]
pub fn from_minimum(api: A, drsr: DRSR, tp: TP) -> Self {
Self { api, byte_buffer: Vector::new(), drsr, tp, built_requests: 0 }
}
#[inline]
pub fn new(api: A, byte_buffer: Vector<u8>, drsr: DRSR, tp: TP) -> Self {
Self { api, byte_buffer, drsr, tp, built_requests: 0 }
}
#[inline]
pub fn built_requests(&self) -> Id {
self.built_requests
}
#[inline]
pub fn json_rpc_request<P>(&mut self, method: &'static str, params: P) -> JsonRpcRequest<P> {
self.increase_requests_num();
JsonRpcRequest { id: self.built_requests, method, params }
}
#[inline]
pub fn verbatim_request<D>(&mut self, data: D) -> VerbatimRequest<D> {
self.increase_requests_num();
VerbatimRequest { data }
}
fn increase_requests_num(&mut self) {
self.built_requests = self.built_requests.wrapping_add(1);
}
}