1use serde_json::Value;
2
3use crate::{RenderPayload, render_card, render_json_ui, render_text};
4
5pub trait QaFrontend {
7 fn render_text_ui(&self, payload: &RenderPayload) -> String;
8 fn render_json_ui(&self, payload: &RenderPayload) -> Value;
9 fn render_adaptive_card(&self, payload: &RenderPayload) -> Value;
10}
11
12#[derive(Debug, Default, Clone, Copy)]
14pub struct DefaultQaFrontend;
15
16impl QaFrontend for DefaultQaFrontend {
17 fn render_text_ui(&self, payload: &RenderPayload) -> String {
18 render_text(payload)
19 }
20
21 fn render_json_ui(&self, payload: &RenderPayload) -> Value {
22 render_json_ui(payload)
23 }
24
25 fn render_adaptive_card(&self, payload: &RenderPayload) -> Value {
26 render_card(payload)
27 }
28}