generated from PlexSheep/rs-base
Merge pull request #21 from race604/bin-and-lib-crate
reorganize code to bin and lib crate
This commit is contained in:
commit
584e4e8ae9
9 changed files with 19 additions and 14 deletions
|
@ -19,7 +19,11 @@ clap = { version = "3.2.12", features = ["derive"] }
|
|||
regex = "1.6.0"
|
||||
chrono-tz = { version = "0.6.3", features = ["serde"] }
|
||||
|
||||
[lib]
|
||||
name = "clock_tui"
|
||||
path = "src/lib.rs"
|
||||
|
||||
[[bin]]
|
||||
bench = false
|
||||
path = "src/main.rs"
|
||||
name = "tclock"
|
||||
path = "src/bin/main.rs"
|
||||
bench = false
|
||||
|
|
|
@ -20,10 +20,10 @@ use self::modes::DurationFormat;
|
|||
use self::modes::Stopwatch;
|
||||
use self::modes::Timer;
|
||||
|
||||
pub(crate) mod modes;
|
||||
pub mod modes;
|
||||
|
||||
#[derive(Debug, Subcommand)]
|
||||
pub(crate) enum Mode {
|
||||
pub enum Mode {
|
||||
/// The clock mode displays the current time, the default mode.
|
||||
Clock {
|
||||
/// Custome timezone, for example "America/New_York", use local timezone if not specificed
|
||||
|
@ -85,7 +85,7 @@ pub(crate) enum Mode {
|
|||
|
||||
#[derive(clap::Parser)]
|
||||
#[clap(name = "tclock", about = "A clock app in terminal", long_about = None)]
|
||||
pub(crate) struct App {
|
||||
pub struct App {
|
||||
#[clap(subcommand)]
|
||||
pub mode: Option<Mode>,
|
||||
/// Foreground color of the clock, possible values are:
|
||||
|
|
|
@ -8,7 +8,7 @@ use std::fmt::Write as _;
|
|||
|
||||
use chrono::Duration;
|
||||
pub(crate) use clock::Clock;
|
||||
use clock_tui::bricks_text::BricksText;
|
||||
use crate::bricks_text::BricksText;
|
||||
pub(crate) use countdown::Countdown;
|
||||
pub(crate) use stopwatch::Stopwatch;
|
||||
pub(crate) use timer::Timer;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
use chrono::{Local, Utc};
|
||||
use chrono_tz::Tz;
|
||||
use clock_tui::bricks_text::BricksText;
|
||||
use crate::bricks_text::BricksText;
|
||||
use tui::{layout::Rect, style::Style, widgets::Widget};
|
||||
|
||||
use super::render_centered;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
use chrono::{DateTime, Duration, Local};
|
||||
use clock_tui::bricks_text::BricksText;
|
||||
use crate::bricks_text::BricksText;
|
||||
use tui::{style::Style, widgets::Widget};
|
||||
|
||||
use super::{format_duration, render_centered, DurationFormat};
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
use chrono::{DateTime, Duration, Local};
|
||||
use clock_tui::bricks_text::BricksText;
|
||||
use crate::bricks_text::BricksText;
|
||||
use tui::{buffer::Buffer, layout::Rect, style::Style, widgets::Widget};
|
||||
|
||||
use crate::app::Pause;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use std::{cell::RefCell, process::Command};
|
||||
|
||||
use chrono::{DateTime, Duration, Local};
|
||||
use clock_tui::bricks_text::BricksText;
|
||||
use crate::bricks_text::BricksText;
|
||||
use tui::{buffer::Buffer, layout::Rect, style::Style, widgets::Widget};
|
||||
|
||||
use crate::app::Pause;
|
||||
|
|
|
@ -4,7 +4,7 @@ use std::{
|
|||
time::{Duration, Instant},
|
||||
};
|
||||
|
||||
use app::Mode;
|
||||
use clock_tui::app::Mode;
|
||||
use clap::Parser;
|
||||
use crossterm::{
|
||||
event::{self, Event, KeyCode},
|
||||
|
@ -16,11 +16,11 @@ use tui::{
|
|||
Terminal,
|
||||
};
|
||||
|
||||
mod app;
|
||||
use clock_tui::app::App;
|
||||
|
||||
fn run_app<B: Backend>(
|
||||
terminal: &mut Terminal<B>,
|
||||
app: &mut app::App,
|
||||
app: &mut App,
|
||||
tick_rate: Duration,
|
||||
) -> io::Result<()> {
|
||||
let mut last_tick = Instant::now();
|
||||
|
@ -49,7 +49,7 @@ fn run_app<B: Backend>(
|
|||
}
|
||||
|
||||
fn main() -> Result<(), Box<dyn Error>> {
|
||||
let mut app = app::App::parse();
|
||||
let mut app = App::parse();
|
||||
app.init_app();
|
||||
|
||||
// setup terminal
|
|
@ -1 +1,2 @@
|
|||
pub mod app;
|
||||
pub mod bricks_text;
|
||||
|
|
Reference in a new issue