Skip to main content

binocular/preview/
types.rs

1use crate::preview::rich_text::RichTextDocument;
2use crate::preview::structured_log::{LogFilterState, StructuredLog};
3use ratatui::text::Text;
4use ratatui_image::protocol::StatefulProtocol;
5
6pub struct DiffPreview {
7    pub text: Text<'static>,
8}
9
10pub struct ImagePreview {
11    pub metadata: Text<'static>,
12    pub metadata_line_count: usize,
13    pub protocol: StatefulProtocol,
14}
15
16pub struct MediaPreview {
17    pub metadata: Text<'static>,
18    pub metadata_line_count: usize,
19    pub artwork: Option<StatefulProtocol>,
20}
21
22pub struct LogPreview {
23    pub log: StructuredLog,
24    pub filter_state: LogFilterState,
25}
26
27pub enum PreviewContent {
28    RichText(RichTextDocument),
29    Diff(DiffPreview),
30    PlainText(Text<'static>),
31    Image(ImagePreview),
32    Media(MediaPreview),
33    StructuredLog(LogPreview),
34}