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) -> TurnCommitPolicy
pub fn new(config: TurnCommitConfig) -> TurnCommitPolicy
Create a new policy state machine with the given config.
Sourcepub fn config(&self) -> &TurnCommitConfig
pub fn config(&self) -> &TurnCommitConfig
The policy’s configuration.
Sourcepub fn set_eot_hold(&mut self, hold: Duration)
pub fn set_eot_hold(&mut self, hold: Duration)
Change the end-of-turn hold mid-session (a stage’s endpointing). A hold already running is measured against the new value.
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
§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§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>
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>
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>
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>,
Layered].