fix some clippy warnings

This commit is contained in:
Michael Zhang 2021-03-27 02:40:22 -05:00
parent 59084e93ea
commit 4711fc5b0b
Signed by: michael
GPG key ID: BDA47A31A3C8EE6B
6 changed files with 62 additions and 50 deletions

View file

@ -130,7 +130,8 @@ pub async fn sync_main(
.unwrap();
while let Some((uid, attrs)) = message_list.next().await {
let evt = MailEvent::UpdateUid(acct_name.clone(), uid, attrs);
mail2ui_tx.send(evt);
// TODO: probably odn't care about this?
let _ = mail2ui_tx.send(evt);
}
// check if IDLE is supported

View file

@ -63,10 +63,9 @@ pub enum MailStoreUpdate {
impl MailStore {
/// Creates a new MailStore
pub fn new(mut config_watcher: ConfigWatcher) -> Self {
pub fn new(config_watcher: ConfigWatcher) -> Self {
let config = Arc::new(RwLock::new(None));
let config2 = config.clone();
let inner = Arc::new(RwLock::new(None));
let inner2 = inner.clone();
@ -74,35 +73,14 @@ impl MailStore {
let store_out_tx = Arc::new(store_out_tx);
let store_out_tx2 = store_out_tx.clone();
let listener = async move {
while let Ok(()) = config_watcher.changed().await {
let new_config = config_watcher.borrow().clone();
let fut = future::try_join(
async {
let mut write = config2.write().await;
write.replace(new_config.clone());
Ok::<_, Error>(())
},
async {
let new_inner =
MailStoreInner::init_with_config(new_config.clone()).await?;
let mut write = inner2.write().await;
write.replace(new_inner);
Ok(())
},
);
match fut.await {
Ok(_) => store_out_tx2.send(Some(MailStoreUpdate::AccountListUpdate(()))),
let handle = tokio::spawn(async move {
match mail_store_config_listener(config_watcher, config2, inner2, store_out_tx2).await {
Ok(_) => {}
Err(e) => {
error!("during mail loop: {}", e);
panic!();
error!("mail store listener error: {}", e);
}
};
}
};
let handle = tokio::spawn(listener);
});
MailStore {
config,
@ -297,6 +275,41 @@ impl MailStore {
}
}
async fn mail_store_config_listener(
mut config_watcher: ConfigWatcher,
config: Arc<RwLock<Option<Config>>>,
inner: Arc<RwLock<Option<MailStoreInner>>>,
store_out_tx: Arc<watch::Sender<Option<MailStoreUpdate>>>,
) -> Result<()> {
while let Ok(()) = config_watcher.changed().await {
let new_config = config_watcher.borrow().clone();
let fut = future::try_join(
async {
let mut write = config.write().await;
write.replace(new_config.clone());
Ok::<_, Error>(())
},
async {
let new_inner = MailStoreInner::init_with_config(new_config.clone()).await?;
let mut write = inner.write().await;
write.replace(new_inner);
Ok(())
},
);
match fut.await {
Ok(_) => store_out_tx.send(Some(MailStoreUpdate::AccountListUpdate(())))?,
Err(e) => {
error!("during mail loop: {}", e);
panic!();
}
};
}
Ok(())
}
impl MailStoreInner {
async fn init_with_config(config: Config) -> Result<Self> {
let data_dir = config.data_dir.to_string_lossy();

View file

@ -3,7 +3,7 @@
use anyhow::Result;
use gluon::{import::add_extern_module, ThreadExt};
use crate::ui::{UiCommand, UiUpdate};
// use crate::ui::{UiCommand, UiUpdate};
/// Creates a VM for running scripts
pub async fn create_script_vm() -> Result<()> {

View file

@ -10,5 +10,7 @@ pub struct SearchIndex {}
impl SearchIndex {
/// Create a new instance of the search index
pub fn new(config: Config) {}
pub fn new(config: Config) -> Self {
SearchIndex {}
}
}

View file

@ -2,9 +2,9 @@
mod colon_prompt;
mod input;
mod keybinds;
// mod keybinds;
mod mail_view;
mod messages;
// mod messages;
mod windows;
use std::any::Any;
@ -45,7 +45,7 @@ use crate::mail::{EmailMetadata, MailEvent, MailStore};
use self::colon_prompt::ColonPrompt;
use self::input::{BaseInputHandler, HandlesInput, InputResult};
use self::mail_view::MailView;
pub(crate) use self::messages::*;
// pub(crate) use self::messages::*;
use self::windows::*;
pub(crate) type FrameType<'a, 'b> = Frame<'a, &'b mut Stdout>;
@ -115,7 +115,7 @@ pub async fn run_ui2(params: UiParams) -> Result<()> {
// got an event from the ui thread
evt = ui_events.next().fuse() => if let Some(evt) = evt {
let evt = evt?;
ui.process_event(evt)?;
ui.process_event(evt);
}
// wait for approx 60fps
@ -169,7 +169,7 @@ impl UI {
.cloned()
.unwrap_or_else(|| i.to_string())
})
.map(|s| Spans::from(s))
.map(Spans::from)
.collect();
let tabs = Tabs::new(titles).style(Style::default().bg(Color::DarkGray));
f.render_widget(tabs, chunks[1]);
@ -196,7 +196,7 @@ impl UI {
}
/// Main entrypoint for handling any kind of event coming from the terminal
fn process_event(&mut self, evt: Event) -> Result<()> {
fn process_event(&mut self, evt: Event) {
if let Event::Key(evt) = evt {
if let KeyEvent {
code: KeyCode::Char('q'),
@ -208,7 +208,7 @@ impl UI {
// handle states in the state stack
// although this is written in a for loop, every case except one should break
// let mut should_pop = false;
let should_pop = false;
// for input_state in input_states.iter_mut().rev() {
// match input_state.handle_key(&mut term, evt)? {
// InputResult::Ok => break,
@ -223,12 +223,11 @@ impl UI {
// }
// }
// if should_pop {
if should_pop {
debug!("pop state");
// input_states.pop();
// }
}
Ok(())
}
}
async fn process_mail_event(&mut self, evt: MailEvent) -> Result<()> {

View file

@ -53,7 +53,7 @@ impl WindowLayout {
self.page_order.push(pid);
self.ids.insert(id, pid);
if let None = self.currently_active {
if self.currently_active.is_none() {
self.currently_active = Some(id);
}
@ -93,10 +93,7 @@ struct PageGraph {
}
#[derive(Debug)]
enum Dir {
H,
V,
}
enum Dir {}
impl PageGraph {
pub fn new(id: LayoutId) -> Self {