diff --git a/src/bin/copyrat.rs b/src/bin/copyrat.rs index 5f8eeb6..4b0ab6f 100644 --- a/src/bin/copyrat.rs +++ b/src/bin/copyrat.rs @@ -3,7 +3,7 @@ use std::fs::OpenOptions; use std::io::prelude::*; use std::io::{self, Read}; -use copyrat::{run, selection::Selection, CliOpt}; +use copyrat::{run, ui::Selection, CliOpt}; fn main() { let opt = CliOpt::parse(); diff --git a/src/bin/tmux_copyrat.rs b/src/bin/tmux_copyrat.rs index 6aea8b0..b523baa 100644 --- a/src/bin/tmux_copyrat.rs +++ b/src/bin/tmux_copyrat.rs @@ -2,7 +2,7 @@ use clap::Clap; use std::collections::HashMap; use std::str::FromStr; -use copyrat::{error, output_destination::OutputDestination, selection::Selection, tmux, CliOpt}; +use copyrat::{error, output_destination::OutputDestination, tmux, ui::Selection, CliOpt}; /// Main configuration, parsed from command line. #[derive(Clap, Debug)] diff --git a/src/lib.rs b/src/lib.rs index a63641d..c591c71 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -8,7 +8,6 @@ pub mod error; pub mod model; pub mod output_destination; pub mod regexes; -pub mod selection; pub mod tmux; pub mod ui; @@ -17,7 +16,7 @@ pub mod ui; /// # Note /// /// Maybe the decision to take ownership of the buffer is a bit bold. -pub fn run(buffer: String, opt: &CliOpt) -> Option { +pub fn run(buffer: String, opt: &CliOpt) -> Option { let mut model = model::Model::new( &buffer, &opt.alphabet, @@ -42,7 +41,7 @@ pub fn run(buffer: String, opt: &CliOpt) -> Option { let default_output_destination = output_destination::OutputDestination::Tmux; - let selection: Option = { + let selection: Option = { let mut ui = ui::ViewController::new( &mut model, opt.unique_hint, diff --git a/src/ui/mod.rs b/src/ui/mod.rs index b740123..753c9f9 100644 --- a/src/ui/mod.rs +++ b/src/ui/mod.rs @@ -18,7 +18,9 @@ //! pub mod colors; +mod selection; mod vc; +pub use selection::Selection; pub use vc::ViewController; pub use vc::{HintAlignment, HintStyle}; diff --git a/src/selection.rs b/src/ui/selection.rs similarity index 55% rename from src/selection.rs rename to src/ui/selection.rs index bac4697..374a59d 100644 --- a/src/selection.rs +++ b/src/ui/selection.rs @@ -1,5 +1,7 @@ use crate::output_destination::OutputDestination; +/// Represents the text selected by the user, along with if it was uppercased +/// and the output destination (Tmux buffer or Clipboard). pub struct Selection { pub text: String, pub uppercased: bool, diff --git a/src/ui/vc.rs b/src/ui/vc.rs index 220d0e2..cab1e37 100644 --- a/src/ui/vc.rs +++ b/src/ui/vc.rs @@ -8,8 +8,9 @@ use sequence_trie::SequenceTrie; use termion::{self, color, cursor, event, style}; use super::colors::UiColors; +use super::Selection; use crate::error::ParseError; -use crate::{model, output_destination::OutputDestination, selection::Selection}; +use crate::{model, output_destination::OutputDestination}; pub struct ViewController<'a> { model: &'a mut model::Model<'a>,