mdbook_journal/journal/topic/
cli_entry.rs1use crate::prelude::*;
2
3pub struct CliEntryGeneration;
4
5pub fn std_io() -> CliEntryGeneration {
6 CliEntryGeneration
7}
8
9impl EntryGenerationTrait for CliEntryGeneration {
10 fn collect_value(&self, variable: &Variable) -> Result<Option<MetaValue>> {
11 use std::io::Write;
12 let stdout = &mut std::io::stdout();
13 let stdin = &mut std::io::stdin();
14 let data = &mut String::with_capacity(64);
15 write!(stdout, "({})❯ ", variable.key())?;
16 stdout.flush()?;
17 stdin.read_line(data)?;
18
19 match data.trim() {
20 "" => Ok(None),
21 value => Ok(Some(MetaValue::String(value.to_owned()))),
22 }
23 }
24}