pub struct ToolCallBuffer { /* private fields */ }Expand description
Streaming buffer that accumulates tokens and detects tool call boundaries.
Use this in streaming response handlers to buffer tokens when a tool call
prefix is detected, then parse and emit Part::FunctionCall when the
closing tag arrives.
§Example
ⓘ
let mut buffer = ToolCallBuffer::new();
for chunk in stream {
match buffer.push(&chunk.text) {
BufferAction::Emit(parts) => {
for part in parts { yield part; }
}
BufferAction::Buffering => { /* still accumulating */ }
}
}
// Flush any remaining content at end of stream
for part in buffer.flush() { yield part; }Implementations§
Source§impl ToolCallBuffer
impl ToolCallBuffer
Sourcepub fn push(&mut self, text: &str) -> BufferAction
pub fn push(&mut self, text: &str) -> BufferAction
Push a text chunk into the buffer.
Returns BufferAction::Emit with parts to yield, or
BufferAction::Buffering if we’re accumulating a potential tool call.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ToolCallBuffer
impl RefUnwindSafe for ToolCallBuffer
impl Send for ToolCallBuffer
impl Sync for ToolCallBuffer
impl Unpin for ToolCallBuffer
impl UnsafeUnpin for ToolCallBuffer
impl UnwindSafe for ToolCallBuffer
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