jonhoo / rust-imap

IMAP client library for Rust

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Make imap panic free

qsdgy opened this issue · comments

commented

There's a lot of pain in dealing with panic from lib, especially working with background services.

At least I'd like to remove panics came across with tag asserts (#229 #211).

How about turn assert_eq!(tag.as_bytes(), match_tag.as_bytes()); to a new imap::error::Error variant Fatal(FatalError) with some fatal error flag like FatalErrorOccurred: bool, and check FatalErrorOccurred flag before any run_command()?

FatalError could be like this:

enum FatalError{
    TagBroken,
    Other,
}