pub struct StatusEvent {
pub status_type: StatusType,
pub runlevel: Runlevel,
pub action: String,
pub arguments: HashMap<String, String>,
/* private fields */
}Expand description
Event providing status information about Tor’s operation.
Status events provide structured information about Tor’s operational state, including bootstrap progress, circuit establishment, and various warnings or errors.
§Status Types
Events are categorized by type:
StatusType::General- General status (e.g., consensus arrived)StatusType::Client- Client-specific status (e.g., bootstrap progress)StatusType::Server- Server-specific status (e.g., reachability checks)
§Bootstrap Progress
The most common use of status events is tracking bootstrap progress.
Look for action == "BOOTSTRAP" and check the PROGRESS argument.
§Example
ⓘ
use stem_rs::events::StatusEvent;
use stem_rs::StatusType;
fn handle_status(event: &StatusEvent) {
if event.action == "BOOTSTRAP" {
if let Some(progress) = event.arguments.get("PROGRESS") {
println!("Bootstrap progress: {}%", progress);
}
if let Some(summary) = event.arguments.get("SUMMARY") {
println!("Status: {}", summary);
}
}
}§See Also
StatusType- Status event typesRunlevel- Severity levels
Fields§
§status_type: StatusTypeType of status event (General, Client, or Server).
runlevel: RunlevelSeverity level of the status message.
action: StringAction or event name (e.g., “BOOTSTRAP”, “CIRCUIT_ESTABLISHED”).
arguments: HashMap<String, String>Key-value arguments providing additional details.
Implementations§
Source§impl StatusEvent
impl StatusEvent
Sourcepub fn parse(status_type: StatusType, content: &str) -> Result<Self, Error>
pub fn parse(status_type: StatusType, content: &str) -> Result<Self, Error>
Parses a status event from raw control protocol content.
§Arguments
status_type- The type of status eventcontent- The event content after the event type
§Event Format
Runlevel Action [Key=Value ...]§Errors
Returns Error::Protocol if:
- Required fields are missing
- The runlevel is unrecognized
Trait Implementations§
Source§impl Clone for StatusEvent
impl Clone for StatusEvent
Source§fn clone(&self) -> StatusEvent
fn clone(&self) -> StatusEvent
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for StatusEvent
impl Debug for StatusEvent
Source§impl Event for StatusEvent
impl Event for StatusEvent
Source§fn event_type(&self) -> EventType
fn event_type(&self) -> EventType
Returns the type of this event. Read more
Source§fn raw_content(&self) -> &str
fn raw_content(&self) -> &str
Returns the raw, unparsed content of the event. Read more
Source§fn arrived_at(&self) -> Instant
fn arrived_at(&self) -> Instant
Returns the instant when this event was received. Read more
Auto Trait Implementations§
impl Freeze for StatusEvent
impl RefUnwindSafe for StatusEvent
impl Send for StatusEvent
impl Sync for StatusEvent
impl Unpin for StatusEvent
impl UnwindSafe for StatusEvent
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