Skip to main content

GuardBuilder

Struct GuardBuilder 

Source
pub struct GuardBuilder<St, S = Uuid> { /* private fields */ }
Expand description

Builds a Guard. Start with Guard::builder.

Implementations§

Source§

impl<St: SessionStore, S: Subject> GuardBuilder<St, S>

Source

pub fn subject<T: Subject>(self) -> GuardBuilder<St, T>

Uses T as the subject type.

Source

pub fn ip_intel(self, intel: impl IpIntel) -> Self

Country / ASN source. Without one, IP changes are judged by network prefix only.

Source

pub fn on_event( self, hook: impl Fn(&SessionEvent) + Send + Sync + 'static, ) -> Self

Called synchronously once per state change, in the process that made the change, after the event is stored. When concurrent requests race, only the one whose change took effect reports it; the exception is step_up_required, which two requests that both trip it may each report. Keep it fast; a panic in the hook is caught and logged.

Delivery is at most once. There is no outbox, so a crash between the change and the hook loses the event.

With alert_dedup_window set, enforced security-relevant events reach the hook at most once per subject and kind per window; the rest are still logged and stored. If the store cannot claim the alert, the hook is called anyway.

Source

pub fn clock(self, clock: impl Clock) -> Self

Time source (default SystemClock).

Source

pub fn build(self) -> Guard<St, S>

Builds the guard.

Auto Trait Implementations§

§

impl<St, S = Uuid> !RefUnwindSafe for GuardBuilder<St, S>

§

impl<St, S = Uuid> !UnwindSafe for GuardBuilder<St, S>

§

impl<St, S> Freeze for GuardBuilder<St, S>
where St: Freeze, PhantomData<fn() -> S>: Freeze,

§

impl<St, S> Send for GuardBuilder<St, S>
where St: Send, PhantomData<fn() -> S>: Send,

§

impl<St, S> Sync for GuardBuilder<St, S>
where St: Sync, PhantomData<fn() -> S>: Sync,

§

impl<St, S> Unpin for GuardBuilder<St, S>
where St: Unpin, PhantomData<fn() -> S>: Unpin,

§

impl<St, S> UnsafeUnpin for GuardBuilder<St, S>
where St: UnsafeUnpin, PhantomData<fn() -> S>: UnsafeUnpin,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoApi for T

Source§

fn into_api<A>(self) -> UseApi<T, A>
where T: Sized,

into UseApi
Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more