Enum imap_types::response::Status
source · pub enum Status<'a> {
Ok {
tag: Option<Tag<'a>>,
code: Option<Code<'a>>,
text: Text<'a>,
},
No {
tag: Option<Tag<'a>>,
code: Option<Code<'a>>,
text: Text<'a>,
},
Bad {
tag: Option<Tag<'a>>,
code: Option<Code<'a>>,
text: Text<'a>,
},
Bye {
code: Option<Code<'a>>,
text: Text<'a>,
},
}
Expand description
7.1. Server Responses - Status Responses
Status responses are OK, NO, BAD, PREAUTH and BYE.
OK, NO, and BAD can be tagged or untagged.
PREAUTH and BYE are always untagged.
Status responses MAY include an OPTIONAL “response code” (see Code
.)
Note: Don’t use code: None
and a text
that starts with “[” as this would be ambiguous in IMAP.
Variants§
Ok
Fields
tag: Option<Tag<'a>>
When tagged, it indicates successful completion of the associated command. The human-readable text MAY be presented to the user as an information message.
The untagged form indicates an information-only message; the nature of the information MAY be indicated by a response code.
The untagged form is also used as one of three possible greetings at connection startup. It indicates that the connection is not yet authenticated and that a LOGIN command is needed.
7.1.1. OK Response
The OK response indicates an information message from the server.
No
Fields
7.1.2. NO Response
The NO response indicates an operational error message from the server.
Bad
Fields
tag: Option<Tag<'a>>
When tagged, it reports a protocol-level error in the client’s command; the tag indicates the command that caused the error. The untagged form indicates a protocol-level error for which the associated command can not be determined; it can also indicate an internal server failure.
7.1.3. BAD Response
The BAD response indicates an error message from the server.
Bye
Fields
7.1.5. BYE Response
The BYE response is always untagged, and indicates that the server is about to close the connection.
The BYE response is sent under one of four conditions:
-
as part of a normal logout sequence. The server will close the connection after sending the tagged OK response to the LOGOUT command.
-
as a panic shutdown announcement. The server closes the connection immediately.
-
as an announcement of an inactivity autologout. The server closes the connection immediately.
-
as one of three possible greetings at connection startup, indicating that the server is not willing to accept a connection from this client. The server closes the connection immediately.
The difference between a BYE that occurs as part of a normal LOGOUT sequence (the first case) and a BYE that occurs because of a failure (the other three cases) is that the connection closes immediately in the failure case. In all cases the client SHOULD continue to read response data from the server until the connection is closed; this will ensure that any pending untagged or completion responses are read and processed.
Implementations§
source§impl<'a> Status<'a>
impl<'a> Status<'a>
pub fn ok<T>( tag: Option<Tag<'a>>, code: Option<Code<'a>>, text: T ) -> Result<Self, T::Error>where T: TryInto<Text<'a>>,
pub fn no<T>( tag: Option<Tag<'a>>, code: Option<Code<'a>>, text: T ) -> Result<Self, T::Error>where T: TryInto<Text<'a>>,
pub fn bad<T>( tag: Option<Tag<'a>>, code: Option<Code<'a>>, text: T ) -> Result<Self, T::Error>where T: TryInto<Text<'a>>,
pub fn bye<T>(code: Option<Code<'a>>, text: T) -> Result<Self, T::Error>where T: TryInto<Text<'a>>,
pub fn tag(&self) -> Option<&Tag<'_>>
pub fn code(&self) -> Option<&Code<'_>>
pub fn text(&self) -> &Text<'_>
Trait Implementations§
source§impl<'a> Arbitrary<'a> for Status<'a>
impl<'a> Arbitrary<'a> for Status<'a>
source§fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self>
fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self>
Self
from the given unstructured data. Read moresource§fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>
fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>
Self
from the entirety of the given
unstructured data. Read more