remove redundant args error
This commit is contained in:
parent
89b3f6f2d3
commit
0c86a97ab4
3 changed files with 28 additions and 26 deletions
|
@ -3,7 +3,6 @@ use std::{env, fs, path::PathBuf, str::FromStr};
|
||||||
use clap::{Parser, ValueEnum};
|
use clap::{Parser, ValueEnum};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
use thiserror::Error;
|
|
||||||
|
|
||||||
use crate::Error;
|
use crate::Error;
|
||||||
|
|
||||||
|
@ -111,12 +110,6 @@ impl FromStr for Layer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Error)]
|
|
||||||
pub enum ArgsError {
|
|
||||||
#[error("input is not valid {0}")]
|
|
||||||
InvalidParameter(String),
|
|
||||||
}
|
|
||||||
|
|
||||||
impl FromStr for Anchor {
|
impl FromStr for Anchor {
|
||||||
type Err = String;
|
type Err = String;
|
||||||
|
|
||||||
|
@ -132,7 +125,7 @@ impl FromStr for Anchor {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl FromStr for Mode {
|
impl FromStr for Mode {
|
||||||
type Err = ArgsError;
|
type Err = Error;
|
||||||
|
|
||||||
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||||
match s {
|
match s {
|
||||||
|
@ -144,7 +137,7 @@ impl FromStr for Mode {
|
||||||
"ssh" => Ok(Mode::Ssh),
|
"ssh" => Ok(Mode::Ssh),
|
||||||
"emoji" => Ok(Mode::Emoji),
|
"emoji" => Ok(Mode::Emoji),
|
||||||
"auto" => Ok(Mode::Auto),
|
"auto" => Ok(Mode::Auto),
|
||||||
_ => Err(ArgsError::InvalidParameter(
|
_ => Err(Error::InvalidArgument(
|
||||||
format!("{s} is not a valid argument, see help for details").to_owned(),
|
format!("{s} is not a valid argument, see help for details").to_owned(),
|
||||||
)),
|
)),
|
||||||
}
|
}
|
||||||
|
@ -152,14 +145,14 @@ impl FromStr for Mode {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl FromStr for WrapMode {
|
impl FromStr for WrapMode {
|
||||||
type Err = ArgsError;
|
type Err = Error;
|
||||||
|
|
||||||
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||||
match s {
|
match s {
|
||||||
"none" => Ok(WrapMode::None),
|
"none" => Ok(WrapMode::None),
|
||||||
"word" => Ok(WrapMode::Word),
|
"word" => Ok(WrapMode::Word),
|
||||||
"inherit" => Ok(WrapMode::Inherit),
|
"inherit" => Ok(WrapMode::Inherit),
|
||||||
_ => Err(ArgsError::InvalidParameter(
|
_ => Err(Error::InvalidArgument(
|
||||||
format!("{s} is not a valid argument, see help for details").to_owned(),
|
format!("{s} is not a valid argument, see help for details").to_owned(),
|
||||||
)),
|
)),
|
||||||
}
|
}
|
||||||
|
@ -167,13 +160,13 @@ impl FromStr for WrapMode {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl FromStr for SortOrder {
|
impl FromStr for SortOrder {
|
||||||
type Err = ArgsError;
|
type Err = Error;
|
||||||
|
|
||||||
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||||
match s {
|
match s {
|
||||||
"alphabetical" => Ok(SortOrder::Alphabetical),
|
"alphabetical" => Ok(SortOrder::Alphabetical),
|
||||||
"default" => Ok(SortOrder::Default),
|
"default" => Ok(SortOrder::Default),
|
||||||
_ => Err(ArgsError::InvalidParameter(
|
_ => Err(Error::InvalidArgument(
|
||||||
format!("{s} is not a valid argument, see help for details").to_owned(),
|
format!("{s} is not a valid argument, see help for details").to_owned(),
|
||||||
)),
|
)),
|
||||||
}
|
}
|
||||||
|
@ -181,13 +174,13 @@ impl FromStr for SortOrder {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl FromStr for KeyDetectionType {
|
impl FromStr for KeyDetectionType {
|
||||||
type Err = ArgsError;
|
type Err = Error;
|
||||||
|
|
||||||
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
fn from_str(s: &str) -> Result<Self, Self::Err> {
|
||||||
match s {
|
match s {
|
||||||
"value" => Ok(KeyDetectionType::Value),
|
"value" => Ok(KeyDetectionType::Value),
|
||||||
"code" => Ok(KeyDetectionType::Code),
|
"code" => Ok(KeyDetectionType::Code),
|
||||||
_ => Err(ArgsError::InvalidParameter(
|
_ => Err(Error::InvalidArgument(
|
||||||
format!("{s} is not a valid argument, see help for details").to_owned(),
|
format!("{s} is not a valid argument, see help for details").to_owned(),
|
||||||
)),
|
)),
|
||||||
}
|
}
|
||||||
|
|
|
@ -1160,7 +1160,9 @@ fn sort_menu_items_by_score<T: Clone>(
|
||||||
}
|
}
|
||||||
|
|
||||||
fn window_show_resize<T: Clone + 'static>(config: &Config, ui: &Rc<UiElements<T>>) {
|
fn window_show_resize<T: Clone + 'static>(config: &Config, ui: &Rc<UiElements<T>>) {
|
||||||
let Some(geometry) = get_monitor_geometry(ui) else { return };
|
let Some(geometry) = get_monitor_geometry(ui) else {
|
||||||
|
return;
|
||||||
|
};
|
||||||
|
|
||||||
// Calculate target width from config, return early if not set
|
// Calculate target width from config, return early if not set
|
||||||
let Some(target_width) = percent_or_absolute(&config.width(), geometry.width()) else {
|
let Some(target_width) = percent_or_absolute(&config.width(), geometry.width()) else {
|
||||||
|
@ -1188,7 +1190,11 @@ fn window_show_resize<T: Clone + 'static>(config: &Config, ui: &Rc<UiElements<T>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn calculate_dynamic_lines_window_height<T: Clone + 'static>(config: &Config, ui: &UiElements<T>, geometry: Rectangle) -> i32 {
|
fn calculate_dynamic_lines_window_height<T: Clone + 'static>(
|
||||||
|
config: &Config,
|
||||||
|
ui: &UiElements<T>,
|
||||||
|
geometry: Rectangle,
|
||||||
|
) -> i32 {
|
||||||
if config.dynamic_lines_limit() {
|
if config.dynamic_lines_limit() {
|
||||||
calculate_row_height(ui, visible_row_count(ui), config)
|
calculate_row_height(ui, visible_row_count(ui), config)
|
||||||
.min(percent_or_absolute(&config.height(), geometry.height()).unwrap_or(0))
|
.min(percent_or_absolute(&config.height(), geometry.height()).unwrap_or(0))
|
||||||
|
@ -1231,7 +1237,7 @@ fn calculate_row_height<T: Clone + 'static>(
|
||||||
if baseline > 0 {
|
if baseline > 0 {
|
||||||
let factor = if lines > 1 {
|
let factor = if lines > 1 {
|
||||||
1.4 // todo find a better way to do this
|
1.4 // todo find a better way to do this
|
||||||
// most likely it will not work with all styles
|
// most likely it will not work with all styles
|
||||||
} else {
|
} else {
|
||||||
1.0
|
1.0
|
||||||
};
|
};
|
||||||
|
@ -1277,7 +1283,7 @@ fn visible_row_count<T: Clone + 'static>(ui: &UiElements<T>) -> i32 {
|
||||||
.filter(|(_, menu)| menu.visible)
|
.filter(|(_, menu)| menu.visible)
|
||||||
.count(),
|
.count(),
|
||||||
)
|
)
|
||||||
.unwrap_or(i32::MAX)
|
.unwrap_or(i32::MAX)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle_selected_item<T>(
|
fn handle_selected_item<T>(
|
||||||
|
@ -1416,10 +1422,10 @@ fn create_menu_row<T: Clone + 'static + Send>(
|
||||||
element_to_add.icon_path.as_ref().map(AsRef::as_ref),
|
element_to_add.icon_path.as_ref().map(AsRef::as_ref),
|
||||||
&meta.config,
|
&meta.config,
|
||||||
)
|
)
|
||||||
.or(lookup_icon(
|
.or(lookup_icon(
|
||||||
label_img.as_ref().map(AsRef::as_ref),
|
label_img.as_ref().map(AsRef::as_ref),
|
||||||
&meta.config,
|
&meta.config,
|
||||||
));
|
));
|
||||||
|
|
||||||
if let Some(image) = img {
|
if let Some(image) = img {
|
||||||
image.set_widget_name("img");
|
image.set_widget_name("img");
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
|
use thiserror::Error;
|
||||||
|
|
||||||
/// Configuration and command line parsing
|
/// Configuration and command line parsing
|
||||||
#[path = "lib/config.rs"]
|
#[path = "lib/config.rs"]
|
||||||
|
@ -13,9 +14,8 @@ pub mod gui;
|
||||||
#[path = "lib/modes/mod.rs"]
|
#[path = "lib/modes/mod.rs"]
|
||||||
pub mod modes;
|
pub mod modes;
|
||||||
|
|
||||||
|
|
||||||
/// Defines error the lib can encounter
|
/// Defines error the lib can encounter
|
||||||
#[derive(Debug, PartialEq)]
|
#[derive(Debug, PartialEq, Error)]
|
||||||
pub enum Error {
|
pub enum Error {
|
||||||
/// Failed to update a cache file with the given reason.
|
/// Failed to update a cache file with the given reason.
|
||||||
UpdateCacheError(String),
|
UpdateCacheError(String),
|
||||||
|
@ -42,6 +42,8 @@ pub enum Error {
|
||||||
Graphics(String),
|
Graphics(String),
|
||||||
/// Nothing selected
|
/// Nothing selected
|
||||||
NoSelection,
|
NoSelection,
|
||||||
|
/// Invalid argument
|
||||||
|
InvalidArgument(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
impl fmt::Display for Error {
|
impl fmt::Display for Error {
|
||||||
|
@ -75,6 +77,7 @@ impl fmt::Display for Error {
|
||||||
Error::NoSelection => {
|
Error::NoSelection => {
|
||||||
write!(f, "NoSelection")
|
write!(f, "NoSelection")
|
||||||
}
|
}
|
||||||
|
Error::InvalidArgument(s) => write!(f, "Invalid argument {s}"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue