refactor: HintAlignment -> ui/hint_alignment.rs

This commit is contained in:
graelo 2021-03-20 19:58:31 +01:00
parent 6ba1bd9454
commit 7c7799ffbd
3 changed files with 29 additions and 27 deletions

26
src/ui/hint_alignment.rs Normal file
View file

@ -0,0 +1,26 @@
use clap::Clap;
use std::str::FromStr;
use crate::error::ParseError;
/// Describes if, during rendering, a hint should aligned to the leading edge of
/// the matched text, or to its trailing edge.
#[derive(Debug, Clap)]
pub enum HintAlignment {
Leading,
Trailing,
}
impl FromStr for HintAlignment {
type Err = ParseError;
fn from_str(s: &str) -> Result<HintAlignment, ParseError> {
match s {
"leading" => Ok(HintAlignment::Leading),
"trailing" => Ok(HintAlignment::Trailing),
_ => Err(ParseError::ExpectedString(String::from(
"leading or trailing",
))),
}
}
}

View file

@ -18,11 +18,12 @@
//!
pub mod colors;
pub mod hint_alignment;
pub mod hint_style;
mod selection;
mod vc;
pub use hint_alignment::HintAlignment;
pub use hint_style::HintStyle;
pub use selection::Selection;
pub use vc::HintAlignment;
pub use vc::ViewController;

View file

@ -1,16 +1,13 @@
use std::char;
use std::cmp;
use std::io;
use std::str::FromStr;
use clap::Clap;
use sequence_trie::SequenceTrie;
use termion::{self, color, cursor, event, style};
use super::colors::UiColors;
use super::HintStyle;
use super::Selection;
use crate::error::ParseError;
use super::{HintAlignment, HintStyle};
use crate::{output_destination::OutputDestination, textbuf};
pub struct ViewController<'a> {
@ -608,28 +605,6 @@ fn get_line_offsets(lines: &[&str], term_width: u16) -> Vec<usize> {
.collect()
}
/// Describes if, during rendering, a hint should aligned to the leading edge of
/// the matched text, or to its trailing edge.
#[derive(Debug, Clap)]
pub enum HintAlignment {
Leading,
Trailing,
}
impl FromStr for HintAlignment {
type Err = ParseError;
fn from_str(s: &str) -> Result<HintAlignment, ParseError> {
match s {
"leading" => Ok(HintAlignment::Leading),
"trailing" => Ok(HintAlignment::Trailing),
_ => Err(ParseError::ExpectedString(String::from(
"leading or trailing",
))),
}
}
}
/// Returned value after the `Ui` has finished listening to events.
enum Event {
/// Exit with no selected matches,