Skip to main content

codetether_agent/tui/ui/chat_view/
token_spans.rs

1//! Push token-usage spans from [`TokenDisplay`] into a span buffer.
2
3use ratatui::text::Span;
4
5use crate::tui::theme::Theme;
6use crate::tui::theme_utils::validate_theme;
7use crate::tui::token_display::TokenDisplay;
8
9/// Append token-usage spans by cloning `Cow` content to `'static`.
10///
11/// # Examples
12///
13/// ```rust,no_run
14/// use codetether_agent::tui::ui::chat_view::token_spans::push_token_spans;
15/// let mut spans: Vec<ratatui::text::Span<'static>> = Vec::new();
16/// push_token_spans(&mut spans);
17/// ```
18pub fn push_token_spans(spans: &mut Vec<Span<'static>>) {
19    let theme = validate_theme(&Theme::default());
20    let token_display = TokenDisplay::new();
21    let token_line = token_display.create_status_bar(&theme);
22    for s in token_line.spans {
23        spans.push(Span::styled(s.content.into_owned(), s.style));
24    }
25}