pub struct TurnCommitPolicy { /* private fields */ }Expand description
The policy state machine. Driven by a monotonic millisecond audio clock (advance it by the duration of each audio chunk, not wall time).
Commit time IS the call’s now_ms — signals carry no timestamps.
Implementations§
Source§impl TurnCommitPolicy
impl TurnCommitPolicy
Sourcepub fn new(config: TurnCommitConfig) -> Self
pub fn new(config: TurnCommitConfig) -> Self
Create a new policy state machine with the given config.
Sourcepub fn advance(
&mut self,
now_ms: u64,
edges: &[VadEvent],
model_speaking: bool,
) -> Vec<TurnSignal>
pub fn advance( &mut self, now_ms: u64, edges: &[VadEvent], model_speaking: bool, ) -> Vec<TurnSignal>
Apply the VAD edges observed in the chunk ending at now_ms, then
advance pending holds/sustains to now_ms. model_speaking is the
caller’s knowledge of whether the model currently holds the floor.
Returns the signals that COMMIT at this call, in order.
Sourcepub fn user_turn_active(&self) -> bool
pub fn user_turn_active(&self) -> bool
Whether an activityStart/InterruptionStart has been committed without a matching ActivityEnd yet.
Auto Trait Implementations§
impl Freeze for TurnCommitPolicy
impl RefUnwindSafe for TurnCommitPolicy
impl Send for TurnCommitPolicy
impl Sync for TurnCommitPolicy
impl Unpin for TurnCommitPolicy
impl UnwindSafe for TurnCommitPolicy
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].