(item: &ContextItem, max_tokens: usize)
| 84 | } |
| 85 | |
| 86 | fn truncate_item(item: &ContextItem, max_tokens: usize) -> ContextItem { |
| 87 | let max_bytes = max_tokens.saturating_mul(4).max(1); |
| 88 | let mut truncated = item.clone(); |
| 89 | let shown = truncate_utf8(&item.content, max_bytes).trim_end(); |
| 90 | truncated.content = format!("{shown}\n\n[context truncated]"); |
| 91 | truncated.token_count = max_tokens; |
| 92 | truncated |
| 93 | } |
| 94 | |
| 95 | #[cfg(test)] |
| 96 | mod tests { |
no test coverage detected