[−][src]Struct rmilter::milter_builder::MilterBuilder
Used to build a Milter.
This crate tries to make it as easy as possible to use milter functionality in rust, while at the same time make it as difficult as possible to violate the milter protocol. The builder pattern is used here to provide an API that achieves these requirements.
One example of this is that the user doesn't need to implement OPTNEG messages manually and
instead only defines what should be enabled by using the set_protocol
method and rmilter uses
this information during option negotiation with the MTA.
If the set_protocol
method is not used, all functionality is enabled by default during option
negotiation.
Example
use rmilter::milter_builder::MilterBuilder; use rmilter::message_handler::MessageHandler; struct MyHandler; impl MessageHandler for MyHandler {} let mut handler = MyHandler {}; let mut milter = MilterBuilder::new(&mut handler) .build();
Implementations
impl<'a> MilterBuilder<'a>
[src]
pub fn build(self) -> Milter<'a>
[src]
Creates a Milter from the MilterBuilder configuration.
Example
use rmilter::milter_builder::MilterBuilder; use rmilter::message_handler::MessageHandler; struct MyHandler; impl MessageHandler for MyHandler {} let mut handler = MyHandler {}; let mut milter = MilterBuilder::new(&mut handler) .build();
pub fn new(message_handler: &'a mut impl MessageHandler) -> Self
[src]
Creates a new MilterBuilder with a given MessageHandler.
The MessageHandler is passed as a mutable borrow to allow the user of the milter to store and use state inside the MessageHandler.
Example
use rmilter::milter_builder::MilterBuilder; use rmilter::message_handler::MessageHandler; struct MyHandler; impl MessageHandler for MyHandler {} let mut handler = MyHandler {}; let mut milter = MilterBuilder::new(&mut handler) .build();
pub fn set_protocol(self, protocol: MilterProtocol) -> Self
[src]
Used to define the protocol for communicating with the MTA.
Example
use rmilter::milter_builder::MilterBuilder; use rmilter::message_handler::MessageHandler; use rmilter::milter_message::MilterProtocol; struct MyHandler; impl MessageHandler for MyHandler {} let mut handler = MyHandler {}; let protocol = MilterProtocol::default(); let mut milter = MilterBuilder::new(&mut handler) .set_protocol(protocol) .build();
Auto Trait Implementations
impl<'a> !RefUnwindSafe for MilterBuilder<'a>
impl<'a> !Send for MilterBuilder<'a>
impl<'a> !Sync for MilterBuilder<'a>
impl<'a> Unpin for MilterBuilder<'a>
impl<'a> !UnwindSafe for MilterBuilder<'a>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,