vv_agent/runtime/backends/
inline.rs1use super::execute_cycle_loop;
2use crate::runtime::CancellationToken;
3use crate::types::{AgentResult, AgentTask, CycleRecord, Message, Metadata};
4
5#[derive(Debug, Clone, Copy, Default)]
6pub struct InlineBackend;
7
8impl InlineBackend {
9 pub fn execute<F>(
10 &self,
11 _task: &AgentTask,
12 initial_messages: Vec<Message>,
13 shared_state: Metadata,
14 cycle_executor: F,
15 cancellation_token: Option<&CancellationToken>,
16 max_cycles: u32,
17 ) -> AgentResult
18 where
19 F: FnMut(
20 u32,
21 &mut Vec<Message>,
22 &mut Vec<CycleRecord>,
23 &mut Metadata,
24 Option<&CancellationToken>,
25 ) -> Option<AgentResult>,
26 {
27 execute_cycle_loop(
28 initial_messages,
29 shared_state,
30 cycle_executor,
31 cancellation_token,
32 max_cycles,
33 )
34 }
35
36 pub fn parallel_map<T, R, F>(&self, function: F, items: Vec<T>) -> Vec<R>
37 where
38 F: Fn(T) -> R,
39 {
40 items.into_iter().map(function).collect()
41 }
42}