Skip to main content

AudioStream

Trait AudioStream 

Source
pub trait AudioStream:
    Stream<Item = VuiResult<AudioChunk>>
    + Send
    + Unpin { }
Expand description

A stream of audio chunks.

This trait represents any stream that produces audio data as AudioChunk items. It’s used throughout the VUIKit system to pass audio data between components in a streaming fashion for real-time processing.

§Example

use vuikit::core::streams::AudioStream;
use vuikit::core::audio::AudioChunk;
use vuikit::core::error::VuiResult;
use futures::{stream, Stream};

// Any stream of audio chunks automatically implements AudioStream
let audio_data: Vec<VuiResult<AudioChunk>> = vec![
    Ok(AudioChunk::new(vec![0.1, 0.2, 0.3], 16000, 1)),
    Ok(AudioChunk::new(vec![0.4, 0.5, 0.6], 16000, 1)),
];
let audio_stream = stream::iter(audio_data);
// audio_stream now implements AudioStream

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<S> AudioStream for S
where S: Stream<Item = VuiResult<AudioChunk>> + Send + Unpin,

Blanket implementation for any stream that produces audio chunks