relentless_grpc/
command.rs

1use relentless::interface::command::{Assault, Relentless};
2use serde::{Deserialize, Serialize};
3
4use crate::{
5    client::GrpcMethodRequest, evaluate::GrpcResponse, factory::GrpcRequest, helper::JsonSerializer,
6    record::GrpcIoRecorder,
7};
8
9#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
10pub struct GrpcAssault {
11    relentless: Relentless,
12}
13impl Assault<GrpcMethodRequest<serde_json::Value, JsonSerializer>, tonic::Response<serde_json::Value>> for GrpcAssault {
14    type Request = GrpcRequest;
15    type Response = GrpcResponse;
16    type Recorder = GrpcIoRecorder;
17
18    fn command(&self) -> &Relentless {
19        &self.relentless
20    }
21    fn recorder(&self) -> Self::Recorder {
22        GrpcIoRecorder
23    }
24}
25
26impl GrpcAssault {
27    pub fn new(relentless: Relentless) -> Self {
28        Self { relentless }
29    }
30}