diff options
-rw-r--r-- | Cargo.lock | 62 | ||||
-rw-r--r-- | Cargo.toml | 35 | ||||
-rw-r--r-- | Makefile | 11 | ||||
-rw-r--r-- | debug_printer/Cargo.toml | 17 | ||||
-rw-r--r-- | debug_printer/src/lib.rs | 44 | ||||
-rw-r--r-- | melib/src/email/list_management.rs | 2 | ||||
-rw-r--r-- | src/bin.rs | 83 | ||||
-rw-r--r-- | src/cache.rs (renamed from ui/src/cache.rs) | 15 | ||||
-rw-r--r-- | src/components.rs (renamed from ui/src/components.rs) | 15 | ||||
-rw-r--r-- | src/components/contacts.rs (renamed from ui/src/components/contacts.rs) | 0 | ||||
-rw-r--r-- | src/components/contacts/contact_list.rs (renamed from ui/src/components/contacts/contact_list.rs) | 0 | ||||
-rw-r--r-- | src/components/mail.rs (renamed from ui/src/components/mail.rs) | 2 | ||||
-rw-r--r-- | src/components/mail/compose.rs (renamed from ui/src/components/mail/compose.rs) | 2 | ||||
-rw-r--r-- | src/components/mail/listing.rs (renamed from ui/src/components/mail/listing.rs) | 3 | ||||
-rw-r--r-- | src/components/mail/listing/compact.rs (renamed from ui/src/components/mail/listing/compact.rs) | 2 | ||||
-rw-r--r-- | src/components/mail/listing/conversations.rs (renamed from ui/src/components/mail/listing/conversations.rs) | 2 | ||||
-rw-r--r-- | src/components/mail/listing/plain.rs (renamed from ui/src/components/mail/listing/plain.rs) | 2 | ||||
-rw-r--r-- | src/components/mail/listing/thread.rs (renamed from ui/src/components/mail/listing/thread.rs) | 2 | ||||
-rw-r--r-- | src/components/mail/pgp.rs (renamed from ui/src/components/mail/pgp.rs) | 2 | ||||
-rw-r--r-- | src/components/mail/status.rs (renamed from ui/src/components/mail/status.rs) | 0 | ||||
-rw-r--r-- | src/components/mail/view.rs (renamed from ui/src/components/mail/view.rs) | 2 | ||||
-rw-r--r-- | src/components/mail/view/envelope.rs (renamed from ui/src/components/mail/view/envelope.rs) | 2 | ||||
-rw-r--r-- | src/components/mail/view/html.rs (renamed from ui/src/components/mail/view/html.rs) | 2 | ||||
-rw-r--r-- | src/components/mail/view/thread.rs (renamed from ui/src/components/mail/view/thread.rs) | 2 | ||||
-rw-r--r-- | src/components/notifications.rs (renamed from ui/src/components/notifications.rs) | 2 | ||||
-rw-r--r-- | src/components/utilities.rs (renamed from ui/src/components/utilities.rs) | 2 | ||||
-rw-r--r-- | src/components/utilities/widgets.rs (renamed from ui/src/components/utilities/widgets.rs) | 2 | ||||
-rw-r--r-- | src/conf.rs (renamed from ui/src/conf.rs) | 9 | ||||
-rw-r--r-- | src/conf/accounts.rs (renamed from ui/src/conf/accounts.rs) | 7 | ||||
-rw-r--r-- | src/conf/composing.rs (renamed from ui/src/conf/composing.rs) | 2 | ||||
-rw-r--r-- | src/conf/listing.rs (renamed from ui/src/conf/listing.rs) | 0 | ||||
-rw-r--r-- | src/conf/notifications.rs (renamed from ui/src/conf/notifications.rs) | 0 | ||||
-rw-r--r-- | src/conf/pager.rs (renamed from ui/src/conf/pager.rs) | 2 | ||||
-rw-r--r-- | src/conf/pgp.rs (renamed from ui/src/conf/pgp.rs) | 0 | ||||
-rw-r--r-- | src/conf/shortcuts.rs (renamed from ui/src/conf/shortcuts.rs) | 0 | ||||
-rw-r--r-- | src/conf/tags.rs (renamed from ui/src/conf/tags.rs) | 2 | ||||
-rw-r--r-- | src/conf/terminal.rs (renamed from ui/src/conf/terminal.rs) | 2 | ||||
-rw-r--r-- | src/conf/themes.rs (renamed from ui/src/conf/themes.rs) | 12 | ||||
-rw-r--r-- | src/execute.rs (renamed from ui/src/execute.rs) | 4 | ||||
-rw-r--r-- | src/execute/actions.rs (renamed from ui/src/execute/actions.rs) | 2 | ||||
-rw-r--r-- | src/execute/history.rs (renamed from ui/src/execute/history.rs) | 2 | ||||
-rw-r--r-- | src/mailcap.rs (renamed from ui/src/mailcap.rs) | 3 | ||||
-rw-r--r-- | src/plugins.rs (renamed from ui/src/plugins.rs) | 2 | ||||
-rw-r--r-- | src/plugins/backend.rs (renamed from ui/src/plugins/backend.rs) | 0 | ||||
-rwxr-xr-x | src/plugins/python3/ansi-plugin.py (renamed from ui/src/plugins/python3/ansi-plugin.py) | 0 | ||||
-rw-r--r-- | src/plugins/python3/libmeliapi.py (renamed from ui/src/plugins/python3/libmeliapi.py) | 0 | ||||
-rwxr-xr-x | src/plugins/python3/nntp-backend.py (renamed from ui/src/plugins/python3/nntp-backend.py) | 0 | ||||
-rw-r--r-- | src/plugins/rpc.rs (renamed from ui/src/plugins/rpc.rs) | 0 | ||||
-rw-r--r-- | src/sqlite3.rs (renamed from ui/src/sqlite3.rs) | 15 | ||||
-rw-r--r-- | src/state.rs (renamed from ui/src/state.rs) | 12 | ||||
-rw-r--r-- | src/terminal.rs (renamed from ui/src/terminal.rs) | 5 | ||||
-rw-r--r-- | src/terminal/cells.rs (renamed from ui/src/terminal/cells.rs) | 53 | ||||
-rw-r--r-- | src/terminal/embed.rs (renamed from ui/src/terminal/embed.rs) | 2 | ||||
-rw-r--r-- | src/terminal/embed/grid.rs (renamed from ui/src/terminal/embed/grid.rs) | 2 | ||||
-rw-r--r-- | src/terminal/keys.rs (renamed from ui/src/terminal/keys.rs) | 10 | ||||
-rw-r--r-- | src/terminal/position.rs (renamed from ui/src/terminal/position.rs) | 2 | ||||
-rw-r--r-- | src/terminal/text_editing.rs (renamed from ui/src/terminal/text_editing.rs) | 2 | ||||
-rw-r--r-- | src/types.rs (renamed from ui/src/types.rs) | 14 | ||||
-rw-r--r-- | src/types/helpers.rs (renamed from ui/src/types/helpers.rs) | 2 | ||||
-rw-r--r-- | src/unix.rs (renamed from ui/src/lib.rs) | 189 | ||||
-rw-r--r-- | src/workers.rs (renamed from ui/src/workers.rs) | 4 | ||||
-rw-r--r-- | testing/Cargo.toml | 3 | ||||
-rw-r--r-- | testing/src/email_parse.rs | 29 | ||||
-rw-r--r-- | testing/src/imap_conn.rs | 9 | ||||
-rw-r--r-- | tests/generating_email.rs | 2 | ||||
-rw-r--r-- | ui/Cargo.toml | 41 | ||||
-rw-r--r-- | ui/src/components/indexer.rs | 134 | ||||
-rw-r--r-- | ui/src/components/indexer/index.rs | 185 | ||||
-rwxr-xr-x | ui/src/sample-plugin.py | 133 |
69 files changed, 320 insertions, 892 deletions
@@ -237,15 +237,6 @@ dependencies = [ ] [[package]] -name = "debug_printer" -version = "0.0.1" -dependencies = [ - "libc 0.2.64 (registry+https://github.com/rust-lang/crates.io-index)", - "melib 0.4.1", - "ui 0.4.1", -] - -[[package]] name = "dirs" version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -743,13 +734,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" name = "meli" version = "0.4.1" dependencies = [ + "bincode 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", "crossbeam 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", + "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", + "libc 0.2.64 (registry+https://github.com/rust-lang/crates.io-index)", + "linkify 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", "melib 0.4.1", "nix 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)", + "nom 3.2.1 (registry+https://github.com/rust-lang/crates.io-index)", + "notify 4.0.12 (registry+https://github.com/rust-lang/crates.io-index)", + "notify-rust 3.6.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rmp 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", + "rmp-serde 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", + "rmpv 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", + "rusqlite 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", + "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_derive 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", "signal-hook 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", "signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "ui 0.4.1", + "smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", + "termion 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", + "text_processing 0.4.1", + "toml 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", + "unicode-segmentation 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", + "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", "xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", + "xdg-utils 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -1840,37 +1851,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] -name = "ui" -version = "0.4.1" -dependencies = [ - "bincode 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "crossbeam 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.64 (registry+https://github.com/rust-lang/crates.io-index)", - "linkify 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", - "melib 0.4.1", - "nix 0.16.1 (registry+https://github.com/rust-lang/crates.io-index)", - "nom 3.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - "notify 4.0.12 (registry+https://github.com/rust-lang/crates.io-index)", - "notify-rust 3.6.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rmp 0.8.8 (registry+https://github.com/rust-lang/crates.io-index)", - "rmp-serde 0.14.0 (registry+https://github.com/rust-lang/crates.io-index)", - "rmpv 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rusqlite 0.20.0 (registry+https://github.com/rust-lang/crates.io-index)", - "serde 1.0.99 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_derive 1.0.92 (registry+https://github.com/rust-lang/crates.io-index)", - "serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)", - "smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "termion 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)", - "text_processing 0.4.1", - "toml 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", - "unicode-segmentation 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", - "xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "xdg-utils 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", -] - -[[package]] name = "unicase" version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -14,21 +14,44 @@ crossbeam = "0.7.2" signal-hook = "0.1.12" signal-hook-registry = "1.2.0" nix = "0.16.1" -melib = { path = "melib", version = "*" } -ui = { path = "ui", version = "*" } +melib = { path = "melib", version = "0.4.1" } + +serde = "1.0.71" +serde_derive = "1.0.71" +serde_json = "1.0" +toml = "0.5.3" +fnv = "1.0.3" # >:c +linkify = "0.3.1" # >:c +xdg-utils = "0.3.0" +nom = "3.2.0" +notify = "4.0.1" # >:c +notify-rust = "^3" # >:c +termion = "1.5.1" +bincode = "1.2.0" +uuid = { version = "0.7.4", features = ["serde", "v4"] } +unicode-segmentation = "1.2.1" # >:c +text_processing = { path = "text_processing", version = "0.4.1" } +libc = {version = "0.2.59", features = ["extra_traits",]} +rusqlite = {version = "0.20.0", optional =true } +rmp = "^0.8" +rmpv = { version = "^0.4.2", features=["with-serde",] } +rmp-serde = "^0.14.0" +smallvec = { version = "1.1.0", features = ["serde", ] } + [profile.release] lto = true debug = false [workspace] -members = ["melib", "ui", "debug_printer", "testing", "text_processing"] +members = ["melib", "testing", "text_processing"] [features] -default = [] -notmuch = ["melib/notmuch_backend", "ui/notmuch"] +default = ["sqlite3"] +notmuch = ["melib/notmuch_backend", ] jmap = ["melib/jmap_backend",] +sqlite3 = ["rusqlite"] # Print tracing logs as meli runs in stderr # enable for debug tracing logs: build with --features=debug-tracing -debug-tracing = ["melib/debug-tracing", "ui/debug-tracing"] +debug-tracing = ["melib/debug-tracing", ] @@ -46,17 +46,18 @@ GREEN ?= `[ -z $${NO_COLOR+x} ] && tput setaf 2 || echo ""` help: @echo "For a quick start, build and install locally:\n ${BOLD}${GREEN}PREFIX=~/.local make install${ANSI_RESET}\n" @echo "Available subcommands:" - @echo " - ${BOLD}install${ANSI_RESET} (installs binary and documentation)" + @echo " - ${BOLD}meli${ANSI_RESET} (builds meli with optimizations in \$$CARGO_TARGET_DIR)" + @echo " - ${BOLD}install${ANSI_RESET} (installs binary in \$$BINDIR and documentation to \$$MANDIR)" @echo " - ${BOLD}uninstall${ANSI_RESET}" @echo "Secondary subcommands:" @echo " - ${BOLD}clean${ANSI_RESET} (cleans build artifacts)" @echo " - ${BOLD}check-deps${ANSI_RESET} (checks dependencies)" - @echo " - ${BOLD}install-bin${ANSI_RESET} (installs binary to BINDIR)" - @echo " - ${BOLD}install-doc${ANSI_RESET} (installs manpages to MANDIR)" + @echo " - ${BOLD}install-bin${ANSI_RESET} (installs binary to \$$BINDIR)" + @echo " - ${BOLD}install-doc${ANSI_RESET} (installs manpages to \$$MANDIR)" @echo " - ${BOLD}help${ANSI_RESET} (prints this information)" - @echo " - ${BOLD}dist${ANSI_RESET} (creates release tarball named meli-"${VERSION}".tar.gz)" - @echo " - ${BOLD}deb-dist${ANSI_RESET} (builds debian package)" + @echo " - ${BOLD}dist${ANSI_RESET} (creates release tarball named meli-"${VERSION}".tar.gz in this directory)" + @echo " - ${BOLD}deb-dist${ANSI_RESET} (builds debian package in the parent directory)" @echo " - ${BOLD}distclean${ANSI_RESET} (cleans distribution build artifacts)" @echo "\nENVIRONMENT variables of interest:" @echo "* PREFIX = ${UNDERLINE}${PREFIX}${ANSI_RESET}" diff --git a/debug_printer/Cargo.toml b/debug_printer/Cargo.toml deleted file mode 100644 index 2bcd9fc2..00000000 --- a/debug_printer/Cargo.toml +++ /dev/null @@ -1,17 +0,0 @@ -[package] -name = "debug_printer" -version = "0.0.1" #:version -authors = ["Manos Pitsidianakis <el13635@mail.ntua.gr>"] -workspace = ".." -edition = "2018" - -[lib] -name = "debugprinter" -crate-type = ["dylib"] -path = "src/lib.rs" - - -[dependencies] -libc = {version = "0.2.55", features = ["extra_traits",] } -melib = { path = "../melib", version = "*" } -ui = { path = "../ui", version = "*" } diff --git a/debug_printer/src/lib.rs b/debug_printer/src/lib.rs deleted file mode 100644 index 072f06c7..00000000 --- a/debug_printer/src/lib.rs +++ /dev/null @@ -1,44 +0,0 @@ -extern crate libc; -extern crate melib; - -use melib::Envelope; -use std::ffi::CString; -use std::os::raw::c_char; - -#[no_mangle] -pub extern "C" fn print_envelope(ptr: *const Envelope) -> *const c_char { - unsafe { - assert!(!ptr.is_null(), "Null pointer in print_envelope"); - //println!("got addr {}", p as u64); - //unsafe { CString::new("blah".to_string()).unwrap().as_ptr() } - let s = CString::new(format!("{:?}", *ptr)).unwrap(); - drop(ptr); - let p = s.as_ptr(); - std::mem::forget(s); - p - } -} - -#[no_mangle] -pub extern "C" fn get_empty_envelope() -> *mut Envelope { - let mut ret = Envelope::default(); - let ptr = std::ptr::NonNull::new(&mut ret as *mut Envelope) - .expect("Envelope::default() has a NULL pointer?"); - - let ptr = ptr.as_ptr(); - std::mem::forget(ret); - ptr -} - -#[no_mangle] -pub extern "C" fn destroy_cstring(ptr: *mut c_char) { - unsafe { - let slice = CString::from_raw(ptr); - drop(slice); - } -} - -#[no_mangle] -pub extern "C" fn envelope_size() -> libc::size_t { - std::mem::size_of::<Envelope>() -} diff --git a/melib/src/email/list_management.rs b/melib/src/email/list_management.rs index 93a14d3d..18e84828 100644 --- a/melib/src/email/list_management.rs +++ b/melib/src/email/list_management.rs @@ -1,5 +1,5 @@ /* - * meli - ui crate. + * meli * * Copyright 2017-2019 Manos Pitsidianakis * @@ -21,24 +21,74 @@ //! //! This crate contains the frontend stuff of the application. The application entry way on -//! `src/bin.rs` creates an event loop and passes input to the `ui` module. +//! `src/bin.rs` creates an event loop and passes input to a thread. //! //! The mail handling stuff is done in the `melib` crate which includes all backend needs. The //! split is done to theoretically be able to create different frontends with the same innards. //! use std::alloc::System; +use std::collections::VecDeque; use std::path::{Path, PathBuf}; +extern crate notify_rust; +extern crate text_processing; +use text_processing::*; +extern crate xdg_utils; +#[macro_use] +extern crate serde_derive; +extern crate linkify; +extern crate uuid; + +extern crate fnv; +extern crate termion; + +#[macro_use] +extern crate nom; + +extern crate serde_json; +extern crate smallvec; #[global_allocator] static GLOBAL: System = System; -// Re export to put crates in the documentation's start page. -pub use melib; -pub use ui; - +#[macro_use] +extern crate melib; use melib::*; -use ui::*; + +mod unix; +use unix::*; + +#[macro_use] +pub mod types; +use crate::types::*; + +#[macro_use] +pub mod terminal; +use crate::terminal::*; + +#[macro_use] +pub mod execute; +use crate::execute::*; + +pub mod state; +use crate::state::*; + +pub mod components; +use crate::components::*; + +#[macro_use] +pub mod conf; +use crate::conf::*; + +pub mod workers; +use crate::workers::*; + +#[cfg(feature = "sqlite3")] +pub mod sqlite3; + +pub mod cache; +pub mod mailcap; +pub mod plugins; use nix; use std::os::raw::c_int; @@ -152,15 +202,12 @@ fn run_app() -> Result<()> { args.version = true; } "--print-loaded-themes" => { - let s = ui::conf::FileSettings::new()?; + let s = conf::FileSettings::new()?; print!("{}", s.terminal.themes.to_string()); return Ok(()); } "--print-default-theme" => { - print!( - "{}", - ui::conf::Theme::default().key_to_string("dark", false) - ); + print!("{}", conf::Theme::default().key_to_string("dark", false)); return Ok(()); } e => match prev { @@ -215,7 +262,7 @@ fn run_app() -> Result<()> { }; if let Some(config_path) = args.test_config.as_ref() { - ui::conf::FileSettings::validate(config_path)?; + conf::FileSettings::validate(config_path)?; return Ok(()); } @@ -235,7 +282,7 @@ fn run_app() -> Result<()> { if config_path.exists() { return Err(MeliError::new(format!("File `{}` already exists.\nMaybe you meant to specify another path with --create-config=PATH", config_path.display()))); } - ui::conf::create_config_file(&config_path)?; + conf::create_config_file(&config_path)?; return Ok(()); } @@ -268,19 +315,17 @@ fn run_app() -> Result<()> { let status_bar = Box::new(StatusBar::new(window)); state.register_component(status_bar); - let xdg_notifications = Box::new(ui::components::notifications::XDGNotifications::new()); + let xdg_notifications = Box::new(components::notifications::XDGNotifications::new()); state.register_component(xdg_notifications); - state.register_component(Box::new( - ui::components::notifications::NotificationFilter {}, - )); + state.register_component(Box::new(components::notifications::NotificationFilter {})); - /* Keep track of the input mode. See ui::UIMode for details */ + /* Keep track of the input mode. See UIMode for details */ 'main: loop { state.render(); 'inner: loop { /* Check if any components have sent reply events to State. */ - let events: ui::smallvec::SmallVec<[UIEvent; 8]> = state.context.replies(); + let events: smallvec::SmallVec<[UIEvent; 8]> = state.context.replies(); for e in events { state.rcv_event(e); } diff --git a/ui/src/cache.rs b/src/cache.rs index 29f187b8..fd46494b 100644 --- a/ui/src/cache.rs +++ b/src/cache.rs @@ -1,5 +1,5 @@ /* - * meli - ui crate. + * meli * * Copyright 2017-2018 Manos Pitsidianakis * @@ -19,6 +19,8 @@ * along with meli. If not, see <http://www.gnu.org/licenses/>. */ +/*! Search queries. + */ use melib::parsec::*; use melib::UnixTimestamp; use melib::{ @@ -27,6 +29,7 @@ use melib::{ thread::{SortField, SortOrder}, Result, }; +use std::borrow::Cow; use std::sync::{Arc, RwLock}; pub use query_parser::query; @@ -334,7 +337,6 @@ pub mod query_parser { pub fn query_to_imap(q: &Query) -> String { fn rec(q: &Query, s: &mut String) { - use crate::sqlite3::escape_double_quote; match q { Subject(t) => { s.push_str(" SUBJECT \""); @@ -440,3 +442,12 @@ pub fn imap_search( panic!("Could not downcast ImapType backend. BUG"); } } + +#[inline(always)] +pub fn escape_double_quote(w: &str) -> Cow<str> { + if w.contains('"') { + Cow::from(w.replace('"', "\"\"")) + } else { + Cow::from(w) + } +} diff --git a/ui/src/components.rs b/src/components.rs index 3ee8cd98..e0fc897d 100644 --- a/ui/src/components.rs +++ b/src/components.rs @@ -1,5 +1,5 @@ /* - * meli - ui crate. + * meli * * Copyright 2017-2018 Manos Pitsidianakis * @@ -19,11 +19,11 @@ * along with meli. If not, see <http://www.gnu.org/licenses/>. */ -/*! -Components are ways to handle application data. They can draw on the terminal and receive events, but also do other stuff as well. (For example, see the `notifications` module.) - -See the `Component` Trait for more details. -*/ +/*! Components visual and logical separations of application interfaces. + * + * They can draw on the terminal and receive events, but also do other stuff as well. (For example, see the `notifications` module.) + * See the `Component` Trait for more details. + */ use super::*; @@ -32,9 +32,6 @@ pub use crate::mail::*; pub mod notifications; -pub mod indexer; -pub use self::indexer::*; - pub mod utilities; pub use self::utilities::*; diff --git a/ui/src/components/contacts.rs b/src/components/contacts.rs index 91907a58..91907a58 100644 --- a/ui/src/components/contacts.rs +++ b/src/components/contacts.rs diff --git a/ui/src/components/contacts/contact_list.rs b/src/components/contacts/contact_list.rs index a79d4cfd..a79d4cfd 100644 --- a/ui/src/components/contacts/contact_list.rs +++ b/src/components/contacts/contact_list.rs diff --git a/ui/src/components/mail.rs b/src/components/mail.rs index 9091b93d..8d2bc89a 100644 --- a/ui/src/components/mail.rs +++ b/src/components/mail.rs @@ -1,5 +1,5 @@ /* - * meli - ui crate. + * meli * * Copyright 2017-2018 Manos Pitsidianakis * diff --git a/ui/src/components/mail/compose.rs b/src/components/mail/compose.rs index b4e7521d..1454dba3 100644 --- a/ui/src/components/mail/compose.rs +++ b/src/components/mail/compose.rs @@ -1,5 +1,5 @@ /* - * meli - ui crate + * meli * * Copyright 2017-2018 Manos Pitsidianakis * diff --git a/ui/src/components/mail/listing.rs b/src/components/mail/listing.rs index da0a9d27..7a64e5a3 100644 --- a/ui/src/components/mail/listing.rs +++ b/src/components/mail/lis |