use crate::{
codec::{
Id,
protocol::{JsonRpcEncoder, VerbatimEncoder},
},
collection::Vector,
};
#[derive(Debug)]
pub struct PkgsAux<A, DRSR, TP> {
pub api: A,
pub built_requests: Id,
pub bytes_buffer: Vector<u8>,
pub drsr: DRSR,
pub encode_data: bool,
pub log_data: bool,
pub tp: TP,
}
impl<A, DRSR, TP> PkgsAux<A, DRSR, TP> {
#[inline]
pub const fn from_minimum(api: A, drsr: DRSR, tp: TP) -> Self {
Self {
api,
bytes_buffer: Vector::new(),
drsr,
encode_data: true,
log_data: false,
tp,
built_requests: 0,
}
}
#[inline]
pub const fn new(
api: A,
built_requests: u64,
bytes_buffer: Vector<u8>,
drsr: DRSR,
encode_data: bool,
log_data: bool,
tp: TP,
) -> Self {
Self { api, built_requests, bytes_buffer, drsr, encode_data, log_data, tp }
}
pub const fn increase_requests_num(&mut self) {
self.built_requests = self.built_requests.wrapping_add(1);
}
#[inline]
pub const fn json_rpc_request<P>(
&mut self,
method: &'static str,
params: P,
) -> JsonRpcEncoder<P> {
self.increase_requests_num();
JsonRpcEncoder { id: self.built_requests, method, params }
}
#[inline]
pub const fn verbatim_request<D>(&mut self, data: D) -> VerbatimEncoder<D> {
self.increase_requests_num();
VerbatimEncoder { data }
}
}