pub struct LogState {
n_fail: usize,
n_ok: usize,
activity: String,
error_message: Option<String>,
error: Option<Box<dyn StdError + Send + 'static>>,
}Expand description
The state for a single rate-limited log message.
This type is used as a common implementation helper for the
log_ratelim!() macro.
Its role is to track successes and failures, to remember some error information, and produce Display-able messages when a RateLim decides that it is time to log.
This type has to be pub, but it is hidden:
using it directly will void your semver guarantees.
Fields§
§n_fail: usizeHow many times has the activity failed since we last reset()?
n_ok: usizeHow many times has the activity succeeded since we last reset()?
activity: StringA string representing the activity itself.
error_message: Option<String>If present, a message that we will along with error.
error: Option<Box<dyn StdError + Send + 'static>>If present, an error that we will log when reporting an error.
Implementations§
Source§impl LogState
impl LogState
Sourcepub fn new(activity: String) -> Self
pub fn new(activity: String) -> Self
Create a new LogState with no recorded errors or successes.
Sourcepub fn note_fail(
&mut self,
msg_fn: impl FnOnce() -> (Option<String>, Option<Box<dyn StdError + Send + 'static>>),
)
pub fn note_fail( &mut self, msg_fn: impl FnOnce() -> (Option<String>, Option<Box<dyn StdError + Send + 'static>>), )
Record a single failure in this LogState.
If this is the first recorded failure, invoke msg_fn to get an
optional failure message and an optional error to be reported as an
example of the types of failures we are seeing.
Sourcepub fn activity(&self) -> Activity
pub fn activity(&self) -> Activity
Check whether there is any activity to report from this LogState.
Sourcepub fn display_problem(&self, dur: Duration) -> impl Display + '_
pub fn display_problem(&self, dur: Duration) -> impl Display + '_
Return a wrapper type for reporting that we have observed problems in this LogState.
Sourcepub fn display_recovery(&self, dur: Duration) -> impl Display + '_
pub fn display_recovery(&self, dur: Duration) -> impl Display + '_
Return a wrapper type for reporting that we have not observed problems in this LogState.
Auto Trait Implementations§
impl Freeze for LogState
impl !RefUnwindSafe for LogState
impl Send for LogState
impl !Sync for LogState
impl Unpin for LogState
impl UnsafeUnpin for LogState
impl !UnwindSafe for LogState
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
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