Skip to main content

chabeau/ui/markdown/
metadata.rs

1use crate::ui::span::SpanKind;
2use ratatui::text::Line;
3
4/// Description of a rendered message (line-based), used by the TUI renderer.
5pub struct RenderedMessage {
6    pub lines: Vec<Line<'static>>,
7}
8
9/// Extended render metadata used by the layout engine when downstream consumers
10/// need per-message spans.
11pub struct RenderedMessageDetails {
12    pub lines: Vec<Line<'static>>,
13    pub span_metadata: Option<Vec<Vec<SpanKind>>>,
14}
15
16impl RenderedMessageDetails {
17    pub fn into_rendered(self) -> RenderedMessage {
18        RenderedMessage { lines: self.lines }
19    }
20}