Fix ci errors
This commit is contained in:
parent
9f84b7ff78
commit
de232c7404
11
.github/workflows/termion.yml
vendored
11
.github/workflows/termion.yml
vendored
|
@ -39,17 +39,6 @@ jobs:
|
|||
os: macOS-latest
|
||||
rust: stable
|
||||
|
||||
# latest rust stable :: windows + gnu
|
||||
- build: win-gnu
|
||||
os: windows-latest
|
||||
rust: stable-x86_64-gnu
|
||||
|
||||
# latest rust stable :: windows + msvc
|
||||
- build: win-msvc
|
||||
os: windows-latest
|
||||
rust: stable
|
||||
|
||||
|
||||
steps:
|
||||
# checkout
|
||||
- name: checkout_repository
|
||||
|
|
|
@ -25,7 +25,6 @@ insta = { version = "1.7.1", default-features = false }
|
|||
rand = "0.8"
|
||||
rand_chacha = "0.3"
|
||||
|
||||
csscolorparser = "0.5" # examples/input.rs
|
||||
regex = "1.5" # examples/prompt_module.rs
|
||||
fuzzy-matcher = "0.3" # examples/file.rs
|
||||
|
||||
|
|
|
@ -1,7 +1,56 @@
|
|||
use csscolorparser::parse as parse_col;
|
||||
use discourse::plugin::ui::style::Stylize;
|
||||
use discourse::Question;
|
||||
|
||||
fn map_err<E>(_: E) {}
|
||||
|
||||
fn parse_col(s: &str) -> Result<(u8, u8, u8), ()> {
|
||||
if !s.is_ascii() {
|
||||
return Err(());
|
||||
}
|
||||
|
||||
let s = s.trim();
|
||||
|
||||
if s.starts_with('#') {
|
||||
let (r, g, b, mult) = if s.len() == 4 {
|
||||
(1..2, 2..3, 3..4, 17)
|
||||
} else if s.len() == 7 {
|
||||
(1..3, 3..5, 5..7, 1)
|
||||
} else {
|
||||
return Err(());
|
||||
};
|
||||
|
||||
Ok((
|
||||
mult * u8::from_str_radix(&s[r], 16).map_err(map_err)?,
|
||||
mult * u8::from_str_radix(&s[g], 16).map_err(map_err)?,
|
||||
mult * u8::from_str_radix(&s[b], 16).map_err(map_err)?,
|
||||
))
|
||||
} else if s.starts_with("rgb(") && s.ends_with(')') {
|
||||
let mut s = &s[4..(s.len() - 1)];
|
||||
let r;
|
||||
let g;
|
||||
|
||||
if let Some(pos) = s.find(',') {
|
||||
r = s[..pos].trim().parse().map_err(map_err)?;
|
||||
s = &s[(pos + 1)..];
|
||||
} else {
|
||||
return Err(());
|
||||
}
|
||||
|
||||
if let Some(pos) = s.find(',') {
|
||||
g = s[..pos].trim().parse().map_err(map_err)?;
|
||||
s = &s[(pos + 1)..];
|
||||
} else {
|
||||
return Err(());
|
||||
}
|
||||
|
||||
let b = s.trim().parse().map_err(map_err)?;
|
||||
|
||||
Ok((r, g, b))
|
||||
} else {
|
||||
Err(())
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let questions = vec![
|
||||
Question::input("first_name")
|
||||
|
@ -18,7 +67,7 @@ fn main() {
|
|||
Err(_) => Err("Please provide a valid css colour".into()),
|
||||
})
|
||||
.transform(|ans, _, backend| {
|
||||
let (r, g, b, _) = parse_col(ans).unwrap().rgba_u8();
|
||||
let (r, g, b) = parse_col(ans).unwrap();
|
||||
|
||||
backend.write_styled(&ans.rgb(r, g, b))?;
|
||||
writeln!(backend)
|
||||
|
|
|
@ -139,7 +139,7 @@ impl Prompt for InputPrompt<'_, '_> {
|
|||
let mut ans = self
|
||||
.input
|
||||
.finish()
|
||||
.unwrap_or_else(|| prompt.into_hint().unwrap());
|
||||
.unwrap_or_else(|| prompt.into_hint().unwrap_or_else(String::new));
|
||||
|
||||
if let Filter::Sync(filter) = self.input_opts.filter {
|
||||
ans = filter(ans, self.answers);
|
||||
|
|
|
@ -234,7 +234,10 @@ impl<'a> MultiSelectBuilder<'a> {
|
|||
}
|
||||
|
||||
pub fn default_separator(mut self) -> Self {
|
||||
self.multi_select.choices.choices.push(Choice::DefaultSeparator);
|
||||
self.multi_select
|
||||
.choices
|
||||
.choices
|
||||
.push(Choice::DefaultSeparator);
|
||||
self.multi_select.selected.push(false);
|
||||
self
|
||||
}
|
||||
|
@ -295,7 +298,10 @@ impl<'a> MultiSelectBuilder<'a> {
|
|||
self.multi_select.selected.push(false);
|
||||
}
|
||||
Choice::DefaultSeparator => {
|
||||
self.multi_select.choices.choices.push(Choice::DefaultSeparator);
|
||||
self.multi_select
|
||||
.choices
|
||||
.choices
|
||||
.push(Choice::DefaultSeparator);
|
||||
self.multi_select.selected.push(false);
|
||||
}
|
||||
}
|
||||
|
@ -319,7 +325,10 @@ impl<'a> MultiSelectBuilder<'a> {
|
|||
crate::impl_transform_builder!([ListItem]; multi_select);
|
||||
|
||||
pub fn build(self) -> super::Question<'a> {
|
||||
super::Question::new(self.opts, super::QuestionKind::MultiSelect(self.multi_select))
|
||||
super::Question::new(
|
||||
self.opts,
|
||||
super::QuestionKind::MultiSelect(self.multi_select),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user