use std::fmt::{Debug, Formatter, Result};
use crate::{ch,
fmt_option,
ChUnit,
EditorBuffer,
InlineString,
ItemsOwned,
DEFAULT_SYN_HI_FILE_EXT};
#[derive(Clone, PartialEq)]
pub struct DialogBuffer {
pub editor_buffer: EditorBuffer,
pub title: InlineString,
pub maybe_results: Option<ItemsOwned>,
}
impl DialogBuffer {
pub fn get_results_count(&self) -> ChUnit {
if let Some(ref it) = self.maybe_results {
ch(it.len())
} else {
ch(0)
}
}
}
impl DialogBuffer {
pub fn new_empty() -> Self {
DialogBuffer {
editor_buffer: EditorBuffer::new_empty(Some(DEFAULT_SYN_HI_FILE_EXT), None),
title: InlineString::new(),
maybe_results: None,
}
}
}
mod impl_debug_format {
use super::*;
impl Debug for DialogBuffer {
fn fmt(&self, f: &mut Formatter<'_>) -> Result {
let maybe_results: &dyn Debug = fmt_option!(&self.maybe_results);
write! { f,
"DialogBuffer [
- title: {title}
- maybe_results: {results:?}
- editor_buffer.content: {content}
]",
title = self.title,
results = maybe_results,
content = self.editor_buffer.get_as_string_with_comma_instead_of_newlines()
}
}
}
}