pub struct Zoom { /* private fields */ }Expand description
The zoom resolver over a shared mirror.
Implementations§
Source§impl Zoom
impl Zoom
Sourcepub fn new(transcript: Arc<Mutex<Transcript>>) -> Self
pub fn new(transcript: Arc<Mutex<Transcript>>) -> Self
The resolver reading transcript — the mirror the view
decorator refreshes. Build both sides with crate::attach.
Sourcepub fn spec() -> ToolSpec
pub fn spec() -> ToolSpec
The spec advertised to the model. Its description is the view’s contract: how the lines read and when to zoom.
Sourcepub fn zoom(&self, call: &ToolCall) -> ToolResult
pub fn zoom(&self, call: &ToolCall) -> ToolResult
Resolves one zoom call; the in-band form of
rhema_core::ToolResolver::resolve, public for tests and
embedders.
id, n, and at arrive from the model and are trusted for
nothing: an out-of-range value is an in-band failure, and at is
snapped down to a char boundary before any slice.
Trait Implementations§
Source§impl ToolResolver for Zoom
impl ToolResolver for Zoom
Source§fn replay_safety(&self, name: &str) -> ReplaySafety
fn replay_safety(&self, name: &str) -> ReplaySafety
The replay safety of one offered tool (see
ReplaySafety),
consulted when a crash left a committed call without its result.
Defaults to ReplaySafety::Unsafe: a resolver that does not
classify its tools is treated as entirely side-effecting.Source§fn resolve<'life0, 'life1, 'async_trait>(
&'life0 self,
call: ToolCall,
_ctx: &'life1 ToolContext,
) -> Pin<Box<dyn Future<Output = ToolResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn resolve<'life0, 'life1, 'async_trait>(
&'life0 self,
call: ToolCall,
_ctx: &'life1 ToolContext,
) -> Pin<Box<dyn Future<Output = ToolResult> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Turn a model’s call into a result. Errors become in-band results:
implementations must not panic and must not abort on unknown names
or bad arguments — return
ToolResult::failure instead.Source§fn resolve_streaming<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
call: ToolCall,
ctx: &'life1 ToolContext,
progress: &'life2 mut dyn ToolProgress,
) -> Pin<Box<dyn Future<Output = ToolResult> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
fn resolve_streaming<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
call: ToolCall,
ctx: &'life1 ToolContext,
progress: &'life2 mut dyn ToolProgress,
) -> Pin<Box<dyn Future<Output = ToolResult> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Self: 'async_trait,
Resolve with progress: an implementation running something long —
a shell command — reports human-facing output chunks (complete
lines) as they land, so a sink can render them live; the full
text still arrives in the returned result. The default ignores
progress and resolves as usual.
Auto Trait Implementations§
impl Forget for Zoom
impl Freeze for Zoom
impl Move for Zoom
impl RefUnwindSafe for Zoom
impl Send for Zoom
impl Sync for Zoom
impl Unpin for Zoom
impl UnsafeUnpin for Zoom
impl UnwindSafe for Zoom
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