1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
use inquire::{
error::InquireResult,
ui::{Color, RenderConfig, Styled},
Editor, Text,
};
fn main() -> InquireResult<()> {
let _title = Text::new("Title:").prompt()?;
let _description = Editor::new("Description:")
.with_formatter(&|submission| {
let char_count = submission.chars().count();
if char_count == 0 {
String::from("<skipped>")
} else if char_count <= 20 {
submission.into()
} else {
let mut substr: String = submission.chars().take(17).collect();
substr.push_str("...");
substr
}
})
.with_render_config(description_render_config())
.prompt()?;
Ok(())
}
fn description_render_config() -> RenderConfig<'static> {
RenderConfig::default()
.with_canceled_prompt_indicator(Styled::new("<skipped>").with_fg(Color::DarkYellow))
}
|