diff --git a/src/imap/idle.rs b/src/imap/idle.rs index f6962efea..86f0f292c 100644 --- a/src/imap/idle.rs +++ b/src/imap/idle.rs @@ -1,6 +1,8 @@ use super::Imap; -use async_imap::extensions::idle::IdleResponse; +use async_imap::extensions::idle::{Handle as ImapIdleHandle, IdleResponse}; +use async_native_tls::TlsStream; +use async_std::net::TcpStream; use async_std::prelude::*; use async_std::task; use std::sync::atomic::Ordering; @@ -9,7 +11,7 @@ use std::time::{Duration, SystemTime}; use crate::context::Context; use super::select_folder; -use super::session::{IdleHandle, Session}; +use super::session::Session; type Result = std::result::Result; @@ -37,6 +39,27 @@ impl From for Error { } } +#[derive(Debug)] +pub(crate) enum IdleHandle { + Secure(ImapIdleHandle>), + Insecure(ImapIdleHandle), +} + +impl Session { + pub fn idle(self) -> IdleHandle { + match self { + Session::Secure(i) => { + let h = i.idle(); + IdleHandle::Secure(h) + } + Session::Insecure(i) => { + let h = i.idle(); + IdleHandle::Insecure(h) + } + } + } +} + impl Imap { pub fn can_idle(&self) -> bool { task::block_on(async move { self.config.read().await.can_idle }) diff --git a/src/imap/session.rs b/src/imap/session.rs index c4a1ae9d7..c4f9d0a95 100644 --- a/src/imap/session.rs +++ b/src/imap/session.rs @@ -1,6 +1,5 @@ use async_imap::{ error::Result as ImapResult, - extensions::idle::Handle as ImapIdleHandle, types::{Capabilities, Fetch, Mailbox, Name}, Session as ImapSession, }; @@ -14,12 +13,6 @@ pub(crate) enum Session { Insecure(ImapSession), } -#[derive(Debug)] -pub(crate) enum IdleHandle { - Secure(ImapIdleHandle>), - Insecure(ImapIdleHandle), -} - impl Session { pub async fn capabilities(&mut self) -> ImapResult { let res = match self { @@ -130,19 +123,6 @@ impl Session { Ok(res) } - pub fn idle(self) -> IdleHandle { - match self { - Session::Secure(i) => { - let h = i.idle(); - IdleHandle::Secure(h) - } - Session::Insecure(i) => { - let h = i.idle(); - IdleHandle::Insecure(h) - } - } - } - pub async fn uid_store(&mut self, uid_set: S1, query: S2) -> ImapResult> where S1: AsRef,