Skip to main content

HostId

Enum HostId 

Source
pub enum HostId {
    Alsa,
}
Expand description

Unique identifier for available hosts on the platform.

Only the hosts supported by the current platform are available as enum variants. For cross-platform code that needs to handle hosts from other platforms, use the string representation via std::fmt::Display/std::str::FromStr.

§Available Host Strings

For cross-platform matching, these host strings are available:

  • "aaudio" - Android Audio
  • "alsa" - Advanced Linux Sound Architecture
  • "asio" - ASIO
  • "coreaudio" - CoreAudio
  • "custom" - Custom host (requires custom feature)
  • "emscripten" - Emscripten
  • "jack" - JACK Audio Connection Kit
  • "null" - Null host
  • "wasapi" - Windows Audio Session API
  • "webaudio" - Web Audio API
  • "audioworklet" - Audio Worklet

§Cross-Platform Example

use cpal::HostId;
use std::str::FromStr;

fn handle_host_string(host_string: &str) {
    // String matching works on all platforms
    match host_string {
        "alsa" => println!("ALSA host"),
        "coreaudio" => println!("CoreAudio host"),
        "jack" => println!("JACK host"),
        "wasapi" => println!("WASAPI host"),
        "asio" => println!("ASIO host"),
        "aaudio" => println!("AAudio host"),
        _ => println!("Other host"),
    }

    // Parse host string (may fail if host is not available on this platform)
    if let Ok(host_id) = HostId::from_str(host_string) {
        println!("Successfully parsed: {}", host_id);
    }
}

Variants§

§

Alsa

Implementations§

Source§

impl HostId

Source

pub fn name(&self) -> &'static str

Trait Implementations§

Source§

impl Clone for HostId

Source§

fn clone(&self) -> HostId

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 HostId

Source§

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

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

impl Display for HostId

Source§

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

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

impl FromStr for HostId

Source§

type Err = HostUnavailable

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl Hash for HostId

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for HostId

Source§

fn eq(&self, other: &HostId) -> 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 Copy for HostId

Source§

impl Eq for HostId

Source§

impl StructuralPartialEq for HostId

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<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

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> 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> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,