diff options
author | Quentin Dufour <quentin@deuxfleurs.fr> | 2024-01-01 19:25:28 +0100 |
---|---|---|
committer | Quentin Dufour <quentin@deuxfleurs.fr> | 2024-01-01 19:25:28 +0100 |
commit | 07eea38765aecbd53e51be199094eba2871dc7ad (patch) | |
tree | 590b136365f43d1602442620161aee8b256bc998 /src/imap/command/mod.rs | |
parent | e2d77defc8496c2795860c6901d752e2c8d1c4ac (diff) | |
download | aerogramme-07eea38765aecbd53e51be199094eba2871dc7ad.tar.gz aerogramme-07eea38765aecbd53e51be199094eba2871dc7ad.zip |
ported commands
Diffstat (limited to 'src/imap/command/mod.rs')
-rw-r--r-- | src/imap/command/mod.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/imap/command/mod.rs b/src/imap/command/mod.rs index 0b7e576..dc95746 100644 --- a/src/imap/command/mod.rs +++ b/src/imap/command/mod.rs @@ -1,4 +1,21 @@ pub mod anonymous; +pub mod anystate; pub mod authenticated; pub mod examined; pub mod selected; + +use crate::mail::user::INBOX; +use imap_codec::imap_types::mailbox::Mailbox as MailboxCodec; + +/// Convert an IMAP mailbox name/identifier representation +/// to an utf-8 string that is used internally in Aerogramme +struct MailboxName<'a>(&'a MailboxCodec<'a>); +impl<'a> TryInto<&'a str> for MailboxName<'a> { + type Error = std::str::Utf8Error; + fn try_into(self) -> Result<&'a str, Self::Error> { + match self.0 { + MailboxCodec::Inbox => Ok(INBOX), + MailboxCodec::Other(aname) => Ok(std::str::from_utf8(aname.as_ref())?), + } + } +} |