Skip to main content

TurnConfig

Struct TurnConfig 

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

Configuration structure for handling TURN client configuration.

Holds the following information:

  • Long term credentials for connecting to a TURN server.
  • The TransportType of the requested allocation.
  • A list of AddressFamilys the allocation should be attempted to be created with.

Implementations§

Source§

impl TurnConfig

Source

pub fn new(credentials: TurnCredentials) -> TurnConfig

Construct a new TurnConfig with the provided credentials.

By default a IPV4/UDP allocation is requested.

§Examples
let credentials = TurnCredentials::new("user", "pass");
let config = TurnConfig::new(credentials.clone());
assert_eq!(config.credentials(), &credentials);
assert_eq!(config.allocation_transport(), TransportType::Udp);
assert_eq!(config.address_families(), &[AddressFamily::IPV4]);
Source

pub fn set_allocation_transport(&mut self, allocation_transport: TransportType)

Set the allocation transport requested.

§Examples
let credentials = TurnCredentials::new("user", "pass");
let mut config = TurnConfig::new(credentials.clone());
config.set_allocation_transport(TransportType::Tcp);
assert_eq!(config.allocation_transport(), TransportType::Tcp);
Source

pub fn allocation_transport(&self) -> TransportType

Retrieve the allocation transport requested.

Source

pub fn add_address_family(&mut self, family: AddressFamily)

Add an AddressFamily that will be requested.

Duplicate AddressFamilys are ignored.

§Examples
let credentials = TurnCredentials::new("user", "pass");
let mut config = TurnConfig::new(credentials.clone());
assert_eq!(config.address_families(), &[AddressFamily::IPV4]);
// Duplicate AddressFamily is ignored.
config.add_address_family(AddressFamily::IPV4);
assert_eq!(config.address_families(), &[AddressFamily::IPV4]);
config.add_address_family(AddressFamily::IPV6);
assert_eq!(config.address_families(), &[AddressFamily::IPV4, AddressFamily::IPV6]);
Source

pub fn set_address_family(&mut self, family: AddressFamily)

Set the AddressFamily that will be requested.

§Examples
let credentials = TurnCredentials::new("user", "pass");
let mut config = TurnConfig::new(credentials.clone());
assert_eq!(config.address_families(), &[AddressFamily::IPV4]);
config.set_address_family(AddressFamily::IPV4);
assert_eq!(config.address_families(), &[AddressFamily::IPV4]);
config.set_address_family(AddressFamily::IPV6);
assert_eq!(config.address_families(), &[AddressFamily::IPV6]);
Source

pub fn address_families(&self) -> &[AddressFamily]

Retrieve the AddressFamilys that are requested.

Source

pub fn credentials(&self) -> &TurnCredentials

Retrieve the TurnCredentials used for authenticating with the TURN server.

Source

pub fn add_supported_integrity(&mut self, integrity: IntegrityAlgorithm)

Add a supported integrity algorithm that could be used.

Source

pub fn set_supported_integrity(&mut self, integrity: IntegrityAlgorithm)

Set the supported integrity algorithm used.

Source

pub fn supported_integrity(&self) -> &[IntegrityAlgorithm]

The supported integrity algorithms used.

Source

pub fn set_anonymous_username(&mut self, anon: Feature)

Set whether anonymous username usage is required.

A value of Required requires the server to support RFC 8489 and the Userhash attribute.

Source

pub fn anonymous_username(&self) -> Feature

Whether anonymous username usage is required.

A value of Required requires the server to support RFC 8489 and the Userhash attribute.

Trait Implementations§

Source§

impl Clone for TurnConfig

Source§

fn clone(&self) -> TurnConfig

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 TurnConfig

Source§

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

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

impl PartialEq for TurnConfig

Source§

fn eq(&self, other: &TurnConfig) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for TurnConfig

Source§

impl StructuralPartialEq for TurnConfig

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<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. 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