ConnectionBandwidthEvent

Struct ConnectionBandwidthEvent 

Source
pub struct ConnectionBandwidthEvent {
    pub id: String,
    pub conn_type: ConnectionType,
    pub read: u64,
    pub written: u64,
    /* private fields */
}
Expand description

Event providing bandwidth information for a specific connection.

This event tracks bandwidth usage per connection, categorized by connection type (OR, Dir, Exit). Useful for detailed bandwidth analysis and monitoring.

§Connection Types

§Example

use stem_rs::events::ConnectionBandwidthEvent;
use stem_rs::ConnectionType;

fn handle_conn_bw(event: &ConnectionBandwidthEvent) {
    let type_str = match event.conn_type {
        ConnectionType::Or => "OR",
        ConnectionType::Dir => "Dir",
        ConnectionType::Exit => "Exit",
    };
    println!("{} connection {}: {} read, {} written",
        type_str, event.id, event.read, event.written);
}

§See Also

Fields§

§id: String

Connection identifier.

§conn_type: ConnectionType

Type of connection.

§read: u64

Bytes read on this connection.

§written: u64

Bytes written on this connection.

Implementations§

Source§

impl ConnectionBandwidthEvent

Source

pub fn parse(content: &str) -> Result<Self, Error>

Parses a connection bandwidth event from raw control protocol content.

§Arguments
  • content - The event content after the event type
§Event Format
ID=ConnID TYPE=ConnType READ=bytes WRITTEN=bytes
§Errors

Returns Error::Protocol if:

  • Required fields (ID, TYPE, READ, WRITTEN) are missing
  • The connection type is unrecognized
  • Numeric values cannot be parsed

Trait Implementations§

Source§

impl Clone for ConnectionBandwidthEvent

Source§

fn clone(&self) -> ConnectionBandwidthEvent

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ConnectionBandwidthEvent

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Event for ConnectionBandwidthEvent

Source§

fn event_type(&self) -> EventType

Returns the type of this event. Read more
Source§

fn raw_content(&self) -> &str

Returns the raw, unparsed content of the event. Read more
Source§

fn arrived_at(&self) -> Instant

Returns the instant when this event was received. Read more

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.