pub struct PgDmarcStore { /* private fields */ }Expand description
Postgres-backed DmarcStore. Expects a table:
CREATE TABLE dmarc_results (
source_ip text NOT NULL,
from_domain text NOT NULL,
spf_result text NOT NULL,
dkim_result text NOT NULL,
dmarc_result text NOT NULL,
disposition text NOT NULL,
report_date date NOT NULL DEFAULT CURRENT_DATE
);
CREATE INDEX dmarc_results_by_date ON dmarc_results(report_date);Implementations§
Source§impl PgDmarcStore
impl PgDmarcStore
Sourcepub fn new(pool: PgPool) -> Self
pub fn new(pool: PgPool) -> Self
Construct a PgDmarcStore from an existing pool. The caller
owns the pool lifecycle.
Trait Implementations§
Source§impl DmarcStore for PgDmarcStore
impl DmarcStore for PgDmarcStore
Source§fn record_result<'life0, 'life1, 'async_trait>(
&'life0 self,
record: &'life1 DmarcResultRecord,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn record_result<'life0, 'life1, 'async_trait>(
&'life0 self,
record: &'life1 DmarcResultRecord,
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Append a verified result. Called per-message during inbound.
Source§fn get_results_for_date<'life0, 'life1, 'async_trait>(
&'life0 self,
date: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<DmarcResultRecord>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_results_for_date<'life0, 'life1, 'async_trait>(
&'life0 self,
date: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<DmarcResultRecord>, Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Fetch all results recorded on
date (YYYY-MM-DD). Called once
per day by the report generator.Auto Trait Implementations§
impl Freeze for PgDmarcStore
impl !RefUnwindSafe for PgDmarcStore
impl Send for PgDmarcStore
impl Sync for PgDmarcStore
impl Unpin for PgDmarcStore
impl UnsafeUnpin for PgDmarcStore
impl !UnwindSafe for PgDmarcStore
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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