update to 2018 edition

master
Manos Pitsidianakis 2019-04-04 14:21:52 +03:00
parent ac0e2cbe44
commit 1c7aa0ec9c
Signed by: Manos Pitsidianakis
GPG Key ID: 73627C2F690DF710
19 changed files with 120 additions and 115 deletions

View File

@ -2,6 +2,7 @@
name = "meli" name = "meli"
version = "0.1.0" version = "0.1.0"
authors = ["Manos Pitsidianakis <el13635@mail.ntua.gr>"] authors = ["Manos Pitsidianakis <el13635@mail.ntua.gr>"]
edition = "2018"
[[bin]] [[bin]]
name = "meli" name = "meli"

View File

@ -1,43 +1,62 @@
#![feature(test)] //#![feature(test)]
extern crate melib; //use melib::conf::AccountSettings;
use melib::conf::Folder; //use melib::mailbox::backends::maildir::*;
use melib::mailbox::backends::maildir::*; //
//extern crate test;
extern crate test; //use self::test::Bencher;
use self::test::Bencher; //
//#[bench]
#[bench] //fn bench_threads_1(b: &mut Bencher) {
fn bench_threads_1(b: &mut Bencher) { // b.iter(|| {
b.iter(|| { // let folder = Folder::new(
let folder = Folder::new(String::from(""), String::from(""), vec![]); // String::from(""),
MaildirType::new("").multicore(1, &folder) // String::from(""),
}); // vec![],
} // );
#[bench] // MaildirType::new("").multicore(1, &folder)
fn bench_threads_2(b: &mut Bencher) { // });
b.iter(|| { //}
let folder = Folder::new(String::from(""), String::from(""), vec![]); //#[bench]
MaildirType::new("").multicore(2, &folder) //fn bench_threads_2(b: &mut Bencher) {
}); // b.iter(|| {
} // let folder = Folder::new(
#[bench] // String::from(""),
fn bench_threads_3(b: &mut Bencher) { // String::from(""),
b.iter(|| { // vec![],
let folder = Folder::new(String::from(""), String::from(""), vec![]); // );
MaildirType::new("").multicore(3, &folder) // MaildirType::new("").multicore(2, &folder)
}); // });
} //}
#[bench] //#[bench]
fn bench_threads_4(b: &mut Bencher) { //fn bench_threads_3(b: &mut Bencher) {
b.iter(|| { // b.iter(|| {
let folder = Folder::new(String::from(""), String::from(""), vec![]); // let folder = Folder::new(
MaildirType::new("").multicore(4, &folder) // String::from(""),
}); // String::from(""),
} // vec![],
#[bench] // );
fn bench_threads_6(b: &mut Bencher) { // MaildirType::new("").multicore(3, &folder)
b.iter(|| { // });
let folder = Folder::new(String::from(""), String::from(""), vec![]); //}
MaildirType::new("").multicore(6, &folder) //#[bench]
}); //fn bench_threads_4(b: &mut Bencher) {
} // b.iter(|| {
// let folder = Folder::new(
// String::from(""),
// String::from(""),
// vec![],
// );
// MaildirType::new("").multicore(4, &folder)
// });
//}
//#[bench]
//fn bench_threads_6(b: &mut Bencher) {
// b.iter(|| {
// let folder = Folder::new(
// String::from(""),
// String::from(""),
// vec![],
// );
// MaildirType::new("").multicore(6, &folder)
// });
//}

View File

@ -1,12 +1,12 @@
#![feature(test)] //#![feature(test)]
extern crate melib; //extern crate melib;
//
use melib::mailbox::backends::maildir::MaildirOp; //use melib::mailbox::backends::maildir::MaildirOp;
use melib::mailbox::backends::BackendOpGenerator; //use melib::mailbox::backends::BackendOpGenerator;
use melib::mailbox::email::Envelope; //use melib::mailbox::email::Envelope;
//
extern crate test; //extern crate test;
use self::test::Bencher; //use self::test::Bencher;
/* /*
#[bench] #[bench]

View File

@ -1,6 +1,7 @@
[package] [package]
name = "melib" name = "melib"
version = "0.0.1" #:version version = "0.0.1" #:version
edition = "2018"
authors = [] authors = []
workspace = ".." workspace = ".."

View File

@ -19,7 +19,7 @@
* along with meli. If not, see <http://www.gnu.org/licenses/>. * along with meli. If not, see <http://www.gnu.org/licenses/>.
*/ */
pub mod addressbook; pub mod addressbook;
pub mod async; pub mod async_workers;
pub mod conf; pub mod conf;
pub mod error; pub mod error;
pub mod mailbox; pub mod mailbox;

View File

@ -29,10 +29,10 @@ pub mod email;
pub use self::email::*; pub use self::email::*;
/* Mail backends. Currently only maildir is supported */ /* Mail backends. Currently only maildir is supported */
pub mod backends; pub mod backends;
use error::Result; use crate::error::Result;
use mailbox::backends::Folder; use self::backends::Folder;
pub mod thread; pub mod thread;
pub use mailbox::thread::{SortField, SortOrder, ThreadNode, Threads}; pub use self::thread::{SortField, SortOrder, ThreadNode, Threads};
mod collection; mod collection;
pub use self::collection::*; pub use self::collection::*;

View File

@ -22,19 +22,18 @@ pub mod imap;
pub mod maildir; pub mod maildir;
pub mod mbox; pub mod mbox;
use async::*; use crate::async_workers::*;
use conf::AccountSettings; use crate::conf::AccountSettings;
use error::Result; use crate::error::Result;
//use mailbox::backends::imap::ImapType; //use mailbox::backends::imap::ImapType;
//use mailbox::backends::mbox::MboxType; //use mailbox::backends::mbox::MboxType;
use mailbox::backends::maildir::MaildirType; use self::maildir::MaildirType;
use mailbox::email::{Envelope, EnvelopeHash, Flag}; use super::email::{Envelope, EnvelopeHash, Flag};
use std::fmt; use std::fmt;
use std::fmt::Debug; use std::fmt::Debug;
use std::ops::Deref; use std::ops::Deref;
extern crate fnv; use fnv::FnvHashMap;
use self::fnv::FnvHashMap;
use std; use std;
pub type BackendCreator = Box<Fn(&AccountSettings) -> Box<MailBackend>>; pub type BackendCreator = Box<Fn(&AccountSettings) -> Box<MailBackend>>;
@ -209,7 +208,7 @@ pub trait BackendOp: ::std::fmt::Debug + ::std::marker::Send {
fn fetch_headers(&mut self) -> Result<&[u8]>; fn fetch_headers(&mut self) -> Result<&[u8]>;
fn fetch_body(&mut self) -> Result<&[u8]>; fn fetch_body(&mut self) -> Result<&[u8]>;
fn fetch_flags(&self) -> Flag; fn fetch_flags(&self) -> Flag;
fn set_flag(&mut self, &mut Envelope, Flag) -> Result<()>; fn set_flag(&mut self, envelope: &mut Envelope, flag: Flag) -> Result<()>;
} }
/// `BackendOpGenerator` is a wrapper for a closure that returns a `BackendOp` object /// `BackendOpGenerator` is a wrapper for a closure that returns a `BackendOp` object
@ -238,7 +237,7 @@ impl fmt::Debug for BackendOpGenerator {
pub trait BackendFolder: Debug { pub trait BackendFolder: Debug {
fn hash(&self) -> FolderHash; fn hash(&self) -> FolderHash;
fn name(&self) -> &str; fn name(&self) -> &str;
fn change_name(&mut self, &str); fn change_name(&mut self, new_name: &str);
fn clone(&self) -> Folder; fn clone(&self) -> Folder;
fn children(&self) -> &Vec<usize>; fn children(&self) -> &Vec<usize>;
} }

View File

@ -19,15 +19,13 @@
* along with meli. If not, see <http://www.gnu.org/licenses/>. * along with meli. If not, see <http://www.gnu.org/licenses/>.
*/ */
extern crate fnv;
mod backend; mod backend;
pub use self::backend::*; pub use self::backend::*;
use error::{MeliError, Result}; use crate::error::{MeliError, Result};
use mailbox::backends::*; use crate::mailbox::backends::*;
use mailbox::email::parser; use crate::mailbox::email::parser;
use mailbox::email::{Envelope, Flag}; use crate::mailbox::email::{Envelope, Flag};
use memmap::{Mmap, Protection}; use memmap::{Mmap, Protection};
use std::collections::hash_map::DefaultHasher; use std::collections::hash_map::DefaultHasher;

View File

@ -19,22 +19,17 @@
* along with meli. If not, see <http://www.gnu.org/licenses/>. * along with meli. If not, see <http://www.gnu.org/licenses/>.
*/ */
extern crate bincode;
extern crate fnv;
extern crate notify;
extern crate xdg;
use super::{MaildirFolder, MaildirOp}; use super::{MaildirFolder, MaildirOp};
use async::*; use crate::async_workers::*;
use conf::AccountSettings; use crate::conf::AccountSettings;
use error::{MeliError, Result}; use crate::error::{MeliError, Result};
use mailbox::backends::{ use super::{
BackendFolder, BackendOp, Folder, FolderHash, MailBackend, RefreshEvent, RefreshEventConsumer, BackendFolder, BackendOp, Folder, FolderHash, MailBackend, RefreshEvent, RefreshEventConsumer,
RefreshEventKind::*, RefreshEventKind::*,
}; };
use mailbox::email::{Envelope, EnvelopeHash}; use crate::mailbox::email::{Envelope, EnvelopeHash};
use self::notify::{watcher, DebouncedEvent, RecursiveMode, Watcher}; use notify::{watcher, DebouncedEvent, RecursiveMode, Watcher};
use std::time::Duration; use std::time::Duration;
use std::sync::mpsc::channel; use std::sync::mpsc::channel;
@ -42,8 +37,7 @@ use std::sync::mpsc::channel;
//use std::sync::mpsc::SyncSender; //use std::sync::mpsc::SyncSender;
//use std::time::Duration; //use std::time::Duration;
use std::thread; use std::thread;
extern crate crossbeam; use fnv::{FnvHashMap, FnvHasher};
use self::fnv::{FnvHashMap, FnvHasher};
use std::collections::hash_map::DefaultHasher; use std::collections::hash_map::DefaultHasher;
use std::ffi::OsStr; use std::ffi::OsStr;
use std::fs; use std::fs;

View File

@ -1,14 +1,10 @@
extern crate bincode;
extern crate xdg;
use super::*; use super::*;
use std::collections::BTreeMap; use std::collections::BTreeMap;
use std::fs; use std::fs;
use std::io; use std::io;
use std::ops::{Deref, DerefMut}; use std::ops::{Deref, DerefMut};
extern crate fnv; use fnv::FnvHashMap;
use self::fnv::FnvHashMap;
/// `Mailbox` represents a folder of mail. /// `Mailbox` represents a folder of mail.
#[derive(Debug, Clone, Default)] #[derive(Debug, Clone, Default)]

View File

@ -28,12 +28,12 @@ pub use self::compose::*;
mod attachment_types; mod attachment_types;
pub mod attachments; pub mod attachments;
pub use self::attachments::*; pub use crate::attachments::*;
pub mod parser; pub mod parser;
use parser::BytesExt; use parser::BytesExt;
use error::{MeliError, Result}; use crate::error::{MeliError, Result};
use mailbox::backends::BackendOp; use super::backends::BackendOp;
use std::borrow::Cow; use std::borrow::Cow;
use std::cmp::Ordering; use std::cmp::Ordering;

View File

@ -1,5 +1,5 @@
use mailbox::email::attachments::Attachment; use crate::mailbox::email::attachments::Attachment;
use mailbox::email::parser::BytesExt; use crate::mailbox::email::parser::BytesExt;
use std::fmt::{Display, Formatter, Result as FmtResult}; use std::fmt::{Display, Formatter, Result as FmtResult};
use std::str; use std::str;

View File

@ -19,13 +19,13 @@
* along with meli. If not, see <http://www.gnu.org/licenses/>. * along with meli. If not, see <http://www.gnu.org/licenses/>.
*/ */
use data_encoding::BASE64_MIME; use data_encoding::BASE64_MIME;
use mailbox::email::parser; use crate::mailbox::email::parser;
use mailbox::email::parser::BytesExt; use crate::mailbox::email::parser::BytesExt;
use mailbox::email::EnvelopeWrapper; use crate::mailbox::email::EnvelopeWrapper;
use std::fmt; use std::fmt;
use std::str; use std::str;
pub use mailbox::email::attachment_types::*; pub use crate::mailbox::email::attachment_types::*;
/* /*
* *

View File

@ -1,7 +1,7 @@
use super::*; use super::*;
use chrono::{DateTime, Local}; use chrono::{DateTime, Local};
use data_encoding::BASE64_MIME; use data_encoding::BASE64_MIME;
use mailbox::backends::BackendOp; use crate::mailbox::backends::BackendOp;
use std::str; use std::str;
mod mime; mod mime;
@ -10,9 +10,7 @@ mod random;
//use self::mime::*; //use self::mime::*;
use super::parser; use super::parser;
use fnv::FnvHashMap;
extern crate fnv;
use self::fnv::FnvHashMap;
#[derive(Debug, PartialEq)] #[derive(Debug, PartialEq)]
pub struct Draft { pub struct Draft {

View File

@ -32,11 +32,10 @@
* user having mutable ownership. * user having mutable ownership.
*/ */
use mailbox::email::parser::BytesExt; use crate::mailbox::email::parser::BytesExt;
use mailbox::email::*; use crate::mailbox::email::*;
extern crate fnv; use fnv::{FnvHashMap, FnvHashSet};
use self::fnv::{FnvHashMap, FnvHashSet};
use std::cell::{Ref, RefCell}; use std::cell::{Ref, RefCell};
use std::cmp; use std::cmp;
use std::cmp::Ordering; use std::cmp::Ordering;

View File

@ -29,19 +29,19 @@ use std::alloc::System;
#[global_allocator] #[global_allocator]
static GLOBAL: System = System; static GLOBAL: System = System;
extern crate melib;
extern crate ui; use ui;
pub use melib::*; pub use melib::*;
pub use ui::*; pub use ui::*;
#[macro_use] #[macro_use]
extern crate chan; extern crate chan;
extern crate chan_signal; use chan_signal;
use chan_signal::Signal; use chan_signal::Signal;
extern crate nix; use nix;
fn main() { fn main() {
/* Lock all stdio outs */ /* Lock all stdio outs */

View File

@ -23,12 +23,12 @@
* Account management from user configuration. * Account management from user configuration.
*/ */
use async::*; use melib::async_workers::{Async, AsyncStatus, AsyncBuilder};
use conf::AccountConf; use super::AccountConf;
use mailbox::backends::{ use melib::mailbox::backends::{
Backends, Folder, MailBackend, NotifyFn, RefreshEvent, RefreshEventConsumer, RefreshEventKind, Backends, Folder, MailBackend, NotifyFn, RefreshEvent, RefreshEventConsumer, RefreshEventKind,
}; };
use mailbox::*; use melib::mailbox::*;
use melib::error::Result; use melib::error::Result;
use melib::AddressBook; use melib::AddressBook;

View File

@ -1,5 +1,5 @@
use chan; use chan;
use melib::async::Work; use melib::async_workers::Work;
use std; use std;
use std::mem; use std::mem;
use std::thread; use std::thread;