mdbook-journal 0.4.0

journal plugin for mdBook
Documentation
use crate::prelude::*;

pub struct CliEntryGeneration;

pub fn std_io() -> CliEntryGeneration {
    CliEntryGeneration
}

impl EntryGenerationTrait for CliEntryGeneration {
    fn collect_value(&self, variable: &Variable) -> Result<Option<MetaValue>> {
        use std::io::Write;
        let stdout = &mut std::io::stdout();
        let stdin = &mut std::io::stdin();
        let data = &mut String::with_capacity(64);
        write!(stdout, "({})❯ ", variable.key())?;
        stdout.flush()?;
        stdin.read_line(data)?;

        match data.trim() {
            "" => Ok(None),
            value => Ok(Some(MetaValue::String(value.to_owned()))),
        }
    }
}