query_forge/output/formats/
markdown.rs1use crate::{QueryResult, QueryValue};
2use crate::value::display_value;
3
4use super::utils::escape_markdown_cell;
5
6pub fn render_markdown(result: &QueryResult) -> String {
7 let mut output = String::new();
8
9 output.push('|');
10 for column in &result.columns {
11 output.push(' ');
12 output.push_str(&escape_markdown_cell(column));
13 output.push(' ');
14 output.push('|');
15 }
16 output.push('\n');
17
18 output.push('|');
19 for _ in &result.columns {
20 output.push_str(" --- |");
21 }
22
23 for row in &result.rows {
24 output.push('\n');
25 output.push('|');
26 for column_index in 0..result.columns.len() {
27 let value = row.get(column_index).unwrap_or(&QueryValue::Null);
28 output.push(' ');
29 output.push_str(&escape_markdown_cell(&display_value(value)));
30 output.push(' ');
31 output.push('|');
32 }
33 }
34
35 output
36}