Enum ClientEvent

Source
pub enum ClientEvent {
    IncomingCall {
        info: IncomingCallInfo,
        priority: EventPriority,
    },
    CallStateChanged {
        info: CallStatusInfo,
        priority: EventPriority,
    },
    MediaEvent {
        info: MediaEventInfo,
        priority: EventPriority,
    },
    RegistrationStatusChanged {
        info: RegistrationStatusInfo,
        priority: EventPriority,
    },
    ClientError {
        error: ClientError,
        call_id: Option<CallId>,
        priority: EventPriority,
    },
    NetworkEvent {
        connected: bool,
        reason: Option<String>,
        priority: EventPriority,
    },
}
Expand description

Comprehensive client event types

Unified event type that encompasses all possible events in the VoIP client, with associated priority levels for filtering and handling.

§Examples

use rvoip_client_core::events::{ClientEvent, IncomingCallInfo, EventPriority};
use rvoip_client_core::call::CallId;
use chrono::Utc;
 
let call_info = IncomingCallInfo {
    call_id: uuid::Uuid::new_v4(),
    caller_uri: "sip:caller@example.com".to_string(),
    callee_uri: "sip:callee@example.com".to_string(),
    caller_display_name: None,
    subject: None,
    created_at: Utc::now(),
};
 
let event = ClientEvent::IncomingCall {
    info: call_info,
    priority: EventPriority::High,
};
 
assert_eq!(event.priority(), EventPriority::High);

Variants§

§

IncomingCall

Incoming call received from a remote party

Fields

§info: IncomingCallInfo

Information about the incoming call

§priority: EventPriority

Priority level of this event

§

CallStateChanged

Call state changed (connecting, connected, disconnected, etc.)

Fields

§info: CallStatusInfo

Information about the state change

§priority: EventPriority

Priority of this event

§

MediaEvent

Media event occurred (audio start/stop, quality change, etc.)

Fields

§info: MediaEventInfo

Information about the media event

§priority: EventPriority

Priority of this event

§

RegistrationStatusChanged

Registration status changed with SIP server

Fields

§info: RegistrationStatusInfo

Information about the registration change

§priority: EventPriority

Priority of this event

§

ClientError

Client error occurred

Fields

§error: ClientError

The error that occurred

§call_id: Option<CallId>

Call ID associated with the error (if any)

§priority: EventPriority

Priority of this event

§

NetworkEvent

Network connectivity changed

Fields

§connected: bool

Whether the network is now connected

§reason: Option<String>

Reason for the connectivity change (if known)

§priority: EventPriority

Priority of this event

Implementations§

Source§

impl ClientEvent

Source

pub fn priority(&self) -> EventPriority

Get the priority of this event

Returns the priority level assigned to this event, which can be used for filtering and prioritization in event handling systems.

§Examples
use rvoip_client_core::events::{ClientEvent, EventPriority};
use rvoip_client_core::ClientError;
 
let error_event = ClientEvent::ClientError {
    error: ClientError::internal_error("Test error"),
    call_id: None,
    priority: EventPriority::High,
};
 
assert_eq!(error_event.priority(), EventPriority::High);
Source

pub fn call_id(&self) -> Option<CallId>

Get the call ID associated with this event (if any)

Returns the call ID for events that are related to a specific call. Not all events have an associated call ID (e.g., network events).

§Examples
use rvoip_client_core::events::{ClientEvent, EventPriority};
 
let network_event = ClientEvent::NetworkEvent {
    connected: true,
    reason: Some("Connection restored".to_string()),
    priority: EventPriority::Normal,
};
 
assert_eq!(network_event.call_id(), None);
Source

pub fn passes_filter(&self, filter: &EventFilter) -> bool

Check if this event passes the given filter

Tests whether this event matches the criteria specified in the filter. This is used by the event system to determine which subscriptions should receive this event.

§Examples
use rvoip_client_core::events::{ClientEvent, EventFilter, EventPriority};
 
let event = ClientEvent::NetworkEvent {
    connected: true,
    reason: None,
    priority: EventPriority::Normal,
};
 
let filter = EventFilter {
    min_priority: Some(EventPriority::High),
    call_ids: None,
    call_states: None,
    media_event_types: None,
    registration_ids: None,
};
 
// This normal priority event should not pass a high-priority filter
assert!(!event.passes_filter(&filter));

Trait Implementations§

Source§

impl Clone for ClientEvent

Source§

fn clone(&self) -> ClientEvent

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 ClientEvent

Source§

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

Formats the value using the given formatter. 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<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,