llama_cpp_2/
token.rs

1//! Safe wrappers around `llama_token_data` and `llama_token_data_array`.
2
3use std::fmt::Debug;
4use std::fmt::Display;
5
6pub mod data;
7pub mod data_array;
8pub mod logit_bias;
9
10/// A safe wrapper for `llama_token`.
11#[repr(transparent)]
12#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, Hash)]
13#[allow(clippy::module_name_repetitions)]
14pub struct LlamaToken(pub llama_cpp_sys_2::llama_token);
15
16impl Display for LlamaToken {
17    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
18        write!(f, "{}", self.0)
19    }
20}
21
22impl LlamaToken {
23    /// Create a new `LlamaToken` from a i32.
24    ///
25    /// ```
26    /// # use llama_cpp_2::token::LlamaToken;
27    /// let token = LlamaToken::new(0);
28    /// assert_eq!(token, LlamaToken(0));
29    /// ```
30    #[must_use]
31    pub fn new(token_id: i32) -> Self {
32        Self(token_id)
33    }
34}