pub struct BandwidthEvent {
pub read: u64,
pub written: u64,
/* private fields */
}Expand description
Event emitted every second with the bytes sent and received by Tor.
The BW event is one of the most commonly used events for monitoring Tor’s bandwidth usage. It provides a snapshot of data transfer rates over the last second.
§Event Format
The raw event format is: BW <bytes_read> <bytes_written>
§Use Cases
- Monitoring bandwidth consumption
- Building bandwidth graphs
- Detecting network activity
- Rate limiting applications
§Example
ⓘ
use stem_rs::events::BandwidthEvent;
fn handle_bandwidth(event: &BandwidthEvent) {
let read_kbps = event.read as f64 / 1024.0;
let written_kbps = event.written as f64 / 1024.0;
println!("Bandwidth: {:.2} KB/s read, {:.2} KB/s written", read_kbps, written_kbps);
}§See Also
CircuitBandwidthEvent- Per-circuit bandwidth trackingConnectionBandwidthEvent- Per-connection bandwidth tracking
Fields§
§read: u64Bytes received by Tor in the last second.
written: u64Bytes sent by Tor in the last second.
Implementations§
Source§impl BandwidthEvent
impl BandwidthEvent
Sourcepub fn parse(content: &str) -> Result<Self, Error>
pub fn parse(content: &str) -> Result<Self, Error>
Parses a bandwidth event from raw control protocol content.
§Arguments
content- The event content after the event type, e.g., “15 25”
§Errors
Returns Error::Protocol if:
- The content is missing required values
- The read or written values are not valid integers
§Example
ⓘ
let event = BandwidthEvent::parse("1024 2048")?;
assert_eq!(event.read, 1024);
assert_eq!(event.written, 2048);Trait Implementations§
Source§impl Clone for BandwidthEvent
impl Clone for BandwidthEvent
Source§fn clone(&self) -> BandwidthEvent
fn clone(&self) -> BandwidthEvent
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 BandwidthEvent
impl Debug for BandwidthEvent
Source§impl Event for BandwidthEvent
impl Event for BandwidthEvent
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 BandwidthEvent
impl RefUnwindSafe for BandwidthEvent
impl Send for BandwidthEvent
impl Sync for BandwidthEvent
impl Unpin for BandwidthEvent
impl UnwindSafe for BandwidthEvent
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