MCPcopy Create free account
hub / github.com/AI45Lab/Code / delegates_to_inner_guard

Function delegates_to_inner_guard

core/src/orchestration/workflow_budget.rs:201–225  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

199
200 #[tokio::test]
201 async fn delegates_to_inner_guard() {
202 #[derive(Default)]
203 struct Counting {
204 checks: AtomicUsize,
205 records: AtomicUsize,
206 }
207 #[async_trait]
208 impl BudgetGuard for Counting {
209 async fn check_before_llm(&self, _: &str, _: usize) -> BudgetDecision {
210 self.checks.fetch_add(1, Ordering::SeqCst);
211 BudgetDecision::Allow
212 }
213 async fn record_after_llm(&self, _: &str, _: &TokenUsage) {
214 self.records.fetch_add(1, Ordering::SeqCst);
215 }
216 }
217
218 let inner = Arc::new(Counting::default());
219 let budget = WorkflowBudget::new(Some(1000)).with_inner(inner.clone());
220 budget.check_before_llm("s", 0).await;
221 budget.record_after_llm("s", &usage(10)).await;
222 assert_eq!(inner.checks.load(Ordering::SeqCst), 1);
223 assert_eq!(inner.records.load(Ordering::SeqCst), 1);
224 assert_eq!(budget.consumed_tokens(), 10);
225 }
226}

Callers

nothing calls this directly

Calls 5

with_innerMethod · 0.80
usageFunction · 0.70
cloneMethod · 0.45
check_before_llmMethod · 0.45
record_after_llmMethod · 0.45

Tested by

no test coverage detected