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: usize
How many times has the activity failed since we last reset()?
n_ok: usize
How many times has the activity succeeded since we last reset()?
activity: String
A 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.