relentless_grpc/
command.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
use relentless::interface::command::{Assault, Relentless};
use serde::{Deserialize, Serialize};

use crate::{
    client::GrpcMethodRequest, evaluate::GrpcResponse, factory::GrpcRequest, helper::JsonSerializer,
    record::GrpcIoRecorder,
};

#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
pub struct GrpcAssault {
    relentless: Relentless,
}
impl Assault<GrpcMethodRequest<serde_json::Value, JsonSerializer>, tonic::Response<serde_json::Value>> for GrpcAssault {
    type Request = GrpcRequest;
    type Response = GrpcResponse;
    type Recorder = GrpcIoRecorder;

    fn command(&self) -> &Relentless {
        &self.relentless
    }
    fn recorder(&self) -> Self::Recorder {
        GrpcIoRecorder
    }
}

impl GrpcAssault {
    pub fn new(relentless: Relentless) -> Self {
        Self { relentless }
    }
}