deepgram 0.13.0

Community Rust SDK for Deepgram's automated speech recognition APIs.
Documentation
on: [push, pull_request]

name: CI
env:
  CARGO_TERM_COLOR: always
  RUSTFLAGS: -D warnings
  RUSTDOCFLAGS: -D warnings
  PKG_CONFIG_PATH: /usr/lib/pkgconfig

jobs:
  Lockfile:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v5
    - uses: actions-rust-lang/setup-rust-toolchain@v1
    # Resolves the dependency graph without compiling, so this is the cheapest
    # possible guard. `--locked` fails if Cargo.lock does not already match
    # Cargo.toml, which is what keeps a drifted lock from reaching the release
    # workflow, where it surfaces as an opaque `cargo package` dirty-tree error.
    - name: Verify Cargo.lock is up to date
      run: cargo metadata --locked --format-version 1 > /dev/null
  Features:
    runs-on: ubuntu-latest
    steps:
    - uses: actions-rust-lang/setup-rust-toolchain@v1
      with:
        components: rustfmt
    - uses: actions/checkout@v5
    - name: Install dependencies
      run: |
        sudo apt-get update
        sudo apt-get install -y alsa pkg-config libasound2-dev
        export PKG_CONFIG_PATH=/usr/lib/pkgconfig:$PKG_CONFIG_PATH
    - name: Check no features
      run: cargo check --all-targets --no-default-features
    - name: Check listen feature
      run: cargo check --all-targets --no-default-features --features=listen
    - name: Check speak feature
      run: cargo check --all-targets --no-default-features --features=speak
    - name: Check manage feature
      run: cargo check --all-targets --no-default-features --features=manage
    - name: Check read feature
      run: cargo check --all-targets --no-default-features --features=read
    - name: Check agent feature
      run: cargo check --all-targets --no-default-features --features=agent
    - name: Check connect-diagnostics feature
      run: cargo check --all-targets --no-default-features --features=connect-diagnostics
    - name: Check rustls-tls-native-roots with listen
      run: cargo check --all-targets --no-default-features --features=listen,rustls-tls-native-roots
    - name: Check rustls-tls-native-roots with speak
      run: cargo check --all-targets --no-default-features --features=speak,rustls-tls-native-roots
    - name: Check rustls-tls-native-roots with agent
      run: cargo check --all-targets --no-default-features --features=agent,rustls-tls-native-roots
    - name: Check rustls-tls-native-roots with connect-diagnostics
      run: cargo check --all-targets --no-default-features --features=connect-diagnostics,rustls-tls-native-roots
    - name: Test default features (webpki-only trust path)
      run: cargo test --tests
  Build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v5
    - name: Install dependencies
      run: |
        sudo apt-get update
        sudo apt-get install -y alsa pkg-config libasound2-dev
        export PKG_CONFIG_PATH=/usr/lib/pkgconfig:$PKG_CONFIG_PATH
    - name: Cargo Build
      run: cargo build --all-targets --all-features
  Clippy:
    runs-on: ubuntu-latest
    steps:
    - uses: actions-rust-lang/setup-rust-toolchain@v1
      with:
        components: rustfmt
    - uses: actions/checkout@v5
    - name: Install dependencies
      run: |
        sudo apt-get update
        sudo apt-get install -y alsa pkg-config libasound2-dev
        export PKG_CONFIG_PATH=/usr/lib/pkgconfig:$PKG_CONFIG_PATH
    - name: Cargo Clippy
      run: cargo clippy --all-targets --all-features
  Test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v5
    - name: Install dependencies
      run: |
        sudo apt-get update
        sudo apt-get install -y alsa pkg-config libasound2-dev
        export PKG_CONFIG_PATH=/usr/lib/pkgconfig:$PKG_CONFIG_PATH
    - name: Cargo Test
      run: cargo test --all --all-features
  Format:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v5
    - name: Cargo Fmt
      run: cargo fmt --check --all
  Documentation:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v5
    - name: Install dependencies
      run: |
        sudo apt-get update
        sudo apt-get install -y alsa pkg-config libasound2-dev
        export PKG_CONFIG_PATH=/usr/lib/pkgconfig:$PKG_CONFIG_PATH
    - name: Cargo Doc
      run: cargo doc --workspace --all-features
    - name: Cargo Doc, each feature alone
      run: |
        for feature in listen speak manage read agent connect-diagnostics; do
          cargo doc --no-deps --no-default-features --features "$feature"
        done
  Audit:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v5
    - name: Install dependencies
      run: sudo apt-get update
    - name: Install cargo-audit
      run: cargo install --locked cargo-audit
    - name: Remove Dev Dependencies
      run: |
        cargo install --locked cargo-hack
        cargo hack --remove-dev-deps
        cargo generate-lockfile
    - name: Cargo Audit
      run: cargo audit
  Minimal-Versions:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v5
    - name: Install dependencies
      run: |
        sudo apt-get update
        sudo apt-get install -y alsa pkg-config libasound2-dev
        export PKG_CONFIG_PATH=/usr/lib/pkgconfig:$PKG_CONFIG_PATH
    - name: Install Rust Nightly
      run: rustup toolchain install nightly
    - name: Cargo Build
      run: rustup run nightly cargo build --all-targets --all-features -Z minimal-versions
    - name: Cargo Test
      run: rustup run nightly cargo test --all --all-features -Z minimal-versions
    - name: Remove Dev Dependencies
      run: |
        cargo install --locked cargo-hack
        cargo hack --remove-dev-deps
        rustup run nightly cargo generate-lockfile -Z minimal-versions
    - name: Cargo Build Without Dev Dependencies
      run: rustup run nightly cargo build --all-features -Z minimal-versions