Struct CallCenterClientBuilder

Source
pub struct CallCenterClientBuilder { /* private fields */ }
Expand description

Builder for creating a CallCenterClient

The CallCenterClientBuilder provides a fluent interface for configuring and constructing CallCenterClient instances. This builder pattern allows for clean configuration of various client options before creating the final client.

§Configuration Options

  • Configuration: Core call center configuration including routing rules
  • Database Path: Optional database path for persistent storage
  • Custom Settings: Additional customization options

§Examples

§Basic Client Creation

use rvoip_call_engine::api::CallCenterClient;
use rvoip_call_engine::config::CallCenterConfig;
 
let client = CallCenterClient::builder()
    .with_config(CallCenterConfig::default())
    .build()
    .await?;
 
println!("✅ Client created with default configuration");

§Advanced Configuration

use rvoip_call_engine::api::CallCenterClient;
use rvoip_call_engine::config::{CallCenterConfig, QueueConfig, RoutingConfig};
 
let mut config = CallCenterConfig::default();
config.routing.enable_load_balancing = true; // Enable load balancing
 
let client = CallCenterClient::builder()
    .with_config(config)
    .with_database_path("production_call_center.db".to_string())
    .build()
    .await?;
 
println!("🚀 Production client ready with custom configuration");

Implementations§

Source§

impl CallCenterClientBuilder

Source

pub fn new() -> Self

Create a new builder

Initializes a new builder instance with no configuration set. Configuration must be provided before building the client.

§Examples
use rvoip_call_engine::api::client::CallCenterClientBuilder;
 
let builder = CallCenterClientBuilder::new();
// Further configuration needed before building
Source

pub fn with_config(self, config: CallCenterConfig) -> Self

Set the configuration

Provides the core call center configuration that defines system behavior, routing rules, queue settings, and other operational parameters.

§Arguments
  • config - Complete call center configuration
§Examples
use rvoip_call_engine::api::CallCenterClient;
use rvoip_call_engine::config::CallCenterConfig;
 
let mut config = CallCenterConfig::default();
 
// Customize configuration
config.routing.enable_time_based_routing = true; // Enable time-based routing
 
let client = CallCenterClient::builder()
    .with_config(config)
    .build()
    .await?;
Source

pub fn with_database_path(self, path: String) -> Self

Set the database path

Configures the path for persistent database storage. If not provided, the system will operate with in-memory storage only.

§Arguments
  • path - File system path for the database file
§Examples
use rvoip_call_engine::api::CallCenterClient;
use rvoip_call_engine::config::CallCenterConfig;
 
let client = CallCenterClient::builder()
    .with_config(CallCenterConfig::default())
    .with_database_path("call_center_data.db".to_string())
    .build()
    .await?;
 
println!("💾 Client with persistent database storage");
Source

pub async fn build(self) -> CallCenterResult<CallCenterClient>

Build the client

Constructs the final CallCenterClient instance using the provided configuration. This method initializes the underlying call center engine and all necessary components.

§Returns

Ok(CallCenterClient) if construction succeeds, or error if configuration is invalid or initialization fails.

§Errors
  • Configuration not provided
  • Database initialization failure
  • Engine startup failure
  • Network or resource initialization errors
§Examples
use rvoip_call_engine::api::CallCenterClient;
use rvoip_call_engine::config::CallCenterConfig;
 
let client = CallCenterClient::builder()
    .with_config(CallCenterConfig::default())
    .build()
    .await?;
 
println!("🎯 Call center client successfully created");
 
// Client is now ready for agent registration and operations

Trait Implementations§

Source§

impl Default for CallCenterClientBuilder

Source§

fn default() -> Self

Returns the “default value” for a type. 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> 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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,

Source§

impl<A, B, T> HttpServerConnExec<A, B> for T
where B: Body,