1#![allow(missing_docs)]
2
3use agent_base::{AgentResult, RuntimeEvent};
4
5use crate::render::EventRenderer;
6
7pub struct NullRenderer;
10
11impl EventRenderer for NullRenderer {
12 fn render(&mut self, _event: RuntimeEvent) -> AgentResult<()> {
13 Ok(())
14 }
15
16 fn finish_turn(&mut self) -> AgentResult<()> {
17 Ok(())
18 }
19}
20
21#[cfg(test)]
22mod tests {
23 use super::*;
24 use agent_base::SessionId;
25
26 #[test]
27 fn test_null_renderer_always_ok() {
28 let mut r = NullRenderer;
29 assert!(
30 r.render(RuntimeEvent::RunFinished {
31 session_id: SessionId { id: 1, external_id: None },
32 agent_id: None,
33 trace_id: None
34 })
35 .is_ok()
36 );
37 assert!(
38 r.render(RuntimeEvent::RunCancelled {
39 session_id: SessionId { id: 1, external_id: None },
40 agent_id: None,
41 trace_id: None
42 })
43 .is_ok()
44 );
45 assert!(r.finish_turn().is_ok());
46 assert!(r.finish_session().is_ok());
47 }
48}