xai_rust/models/
tokenizer.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize)]
7pub struct TokenizeRequest {
8 pub model: String,
10 pub text: String,
12}
13
14impl TokenizeRequest {
15 pub fn new(model: impl Into<String>, text: impl Into<String>) -> Self {
17 Self {
18 model: model.into(),
19 text: text.into(),
20 }
21 }
22}
23
24#[derive(Debug, Clone, Deserialize)]
26pub struct TokenizeResponse {
27 pub tokens: Vec<u32>,
29 #[serde(default)]
31 pub token_count: u32,
32}
33
34impl TokenizeResponse {
35 pub fn count(&self) -> usize {
37 if self.token_count > 0 {
38 self.token_count as usize
39 } else {
40 self.tokens.len()
41 }
42 }
43}