34 lines
504 B
Rust
34 lines
504 B
Rust
|
use std::borrow::Cow;
|
||
|
|
||
|
#[derive(Clone)]
|
||
|
pub struct Tag(pub String);
|
||
|
|
||
|
pub enum Response<'a> {
|
||
|
Done(ResponseDone<'a>),
|
||
|
}
|
||
|
|
||
|
pub struct ResponseDone<'a> {
|
||
|
pub tag: Tag,
|
||
|
pub status: Status,
|
||
|
pub code: Option<ResponseCode<'a>>,
|
||
|
pub info: Option<Cow<'a, str>>,
|
||
|
}
|
||
|
|
||
|
pub enum Status {
|
||
|
Ok,
|
||
|
No,
|
||
|
Bad,
|
||
|
PreAuth,
|
||
|
Bye,
|
||
|
}
|
||
|
|
||
|
pub enum ResponseCode<'a> {
|
||
|
Capabilities(Vec<Capability<'a>>),
|
||
|
}
|
||
|
|
||
|
pub enum Capability<'a> {
|
||
|
Imap4rev1,
|
||
|
Auth(Cow<'a, str>),
|
||
|
Atom(Cow<'a, str>),
|
||
|
}
|