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 31 32 33 34 35 36
use crate::{QueryResult, QueryValue}; use crate::value::display_value; use super::utils::escape_markdown_cell; pub fn render_markdown(result: &QueryResult) -> String { let mut output = String::new(); output.push('|'); for column in &result.columns { output.push(' '); output.push_str(&escape_markdown_cell(column)); output.push(' '); output.push('|'); } output.push('\n'); output.push('|'); for _ in &result.columns { output.push_str(" --- |"); } for row in &result.rows { output.push('\n'); output.push('|'); for column_index in 0..result.columns.len() { let value = row.get(column_index).unwrap_or(&QueryValue::Null); output.push(' '); output.push_str(&escape_markdown_cell(&display_value(value))); output.push(' '); output.push('|'); } } output }