pub struct SessionUpdateConfig(pub RealtimeConfig);Available on crate feature
realtime only.Expand description
A delta payload for safely updating an active realtime session.
Wraps RealtimeConfig to prevent struct duplication. Since all fields are
Option<T> and skip serialization if None, omitting fields preserves
the server’s active state.
⚠️ WARNING: You must construct a fresh configuration containing only
the fields to modify. Wrapping your original startup config will resend
immutable fields (like model), causing the provider to reject the update.
This is the idiomatic mechanism for dynamic Finite State Machine (FSM) state transitions, allowing seamless “persona shifts” or tool swaps without dropping the audio connection.
§Example
use adk_realtime::config::{SessionUpdateConfig, RealtimeConfig};
// Update *only* the instruction mid-session.
let delta = SessionUpdateConfig(
RealtimeConfig::default().with_instruction("You are now a travel agent.")
);Tuple Fields§
§0: RealtimeConfigTrait Implementations§
Source§impl Clone for SessionUpdateConfig
impl Clone for SessionUpdateConfig
Source§fn clone(&self) -> SessionUpdateConfig
fn clone(&self) -> SessionUpdateConfig
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SessionUpdateConfig
impl Debug for SessionUpdateConfig
Source§impl Default for SessionUpdateConfig
impl Default for SessionUpdateConfig
Source§fn default() -> SessionUpdateConfig
fn default() -> SessionUpdateConfig
Returns the “default value” for a type. Read more
Source§impl Deref for SessionUpdateConfig
impl Deref for SessionUpdateConfig
Source§type Target = RealtimeConfig
type Target = RealtimeConfig
The resulting type after dereferencing.
Source§impl DerefMut for SessionUpdateConfig
impl DerefMut for SessionUpdateConfig
Source§impl<'de> Deserialize<'de> for SessionUpdateConfig
impl<'de> Deserialize<'de> for SessionUpdateConfig
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<SessionUpdateConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<SessionUpdateConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl From<RealtimeConfig> for SessionUpdateConfig
impl From<RealtimeConfig> for SessionUpdateConfig
Source§fn from(config: RealtimeConfig) -> SessionUpdateConfig
fn from(config: RealtimeConfig) -> SessionUpdateConfig
Converts to this type from the input type.
Source§impl Serialize for SessionUpdateConfig
impl Serialize for SessionUpdateConfig
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl Freeze for SessionUpdateConfig
impl RefUnwindSafe for SessionUpdateConfig
impl Send for SessionUpdateConfig
impl Sync for SessionUpdateConfig
impl Unpin for SessionUpdateConfig
impl UnsafeUnpin for SessionUpdateConfig
impl UnwindSafe for SessionUpdateConfig
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestCreates a shared type from an unshared type.