pub struct ListenerStarttlsConfig {
pub trigger: String,
pub response: String,
pub tag_capture: bool,
}Expand description
Declarative STARTTLS grammar (cap-req 06, Stage B) — protocol-agnostic data. The host runs a
generic trigger→response→wrap engine driven entirely by these fields; no SMTP/IMAP/POP3 shapes are
hardcoded in the server. Examples:
SMTP — (trigger: "STARTTLS", response: "220 2.0.0 Ready to start TLS");
POP3 — (trigger: "STLS", response: "+OK begin TLS negotiation");
IMAP — (trigger: "STARTTLS", response: "{tag} OK begin TLS negotiation", tag_capture: true).
Fields§
§trigger: StringThe command the host watches for in the client→server direction, matched at a line boundary,
ASCII-case-insensitively. With tag_capture this is the token AFTER the leading tag.
response: StringThe single line the host writes to the client right before the handshake. {tag} is
substituted with the captured tag (only valid when tag_capture); the host appends CRLF.
tag_capture: boolIMAP-shaped: capture the leading whitespace-delimited token of the trigger line and echo it
(verbatim) into {tag}.
Trait Implementations§
Source§impl Clone for ListenerStarttlsConfig
impl Clone for ListenerStarttlsConfig
Source§impl Debug for ListenerStarttlsConfig
impl Debug for ListenerStarttlsConfig
Source§impl Default for ListenerStarttlsConfig
impl Default for ListenerStarttlsConfig
Source§impl<'de> Deserialize<'de> for ListenerStarttlsConfig
impl<'de> Deserialize<'de> for ListenerStarttlsConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for ListenerStarttlsConfig
impl RefUnwindSafe for ListenerStarttlsConfig
impl Send for ListenerStarttlsConfig
impl Sync for ListenerStarttlsConfig
impl Unpin for ListenerStarttlsConfig
impl UnsafeUnpin for ListenerStarttlsConfig
impl UnwindSafe for ListenerStarttlsConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more