ocular_protocol/
handler.rs1use crate::ProxyEvent;
2
3pub trait ProtocolHandler: Send + Sync {
5 fn parse_request(&self, buf: &[u8]) -> Option<String>;
7
8 fn extract_full_command(&self, buf: &[u8]) -> Option<String> {
10 self.parse_request(buf)
11 }
12
13 fn parse_response(&self, buf: &[u8]) -> Option<String>;
15
16 fn format_response_detail(&self, buf: &[u8]) -> Option<String> {
18 self.parse_response(buf)
19 }
20
21 fn to_replay_command(&self, ev: &ProxyEvent) -> String {
23 ev.full_command.clone()
24 }
25
26 fn needs_request_buffering(&self) -> bool { false }
28
29 fn needs_response_buffering(&self) -> bool { false }
31
32 fn request_complete(&self, _buf: &[u8]) -> bool { true }
34
35 fn response_complete(&self, _buf: &[u8]) -> bool { true }
37
38 fn is_frame_based(&self) -> bool { false }
40}