ik_llama_cpp_2/token/
data.rs1use crate::token::LlamaToken;
3
4use ik_llama_cpp_sys as sys;
5
6#[derive(Clone, Copy, Debug, PartialEq)]
13#[repr(transparent)]
14pub struct LlamaTokenData {
15 data: sys::llama_token_data,
16}
17
18impl LlamaTokenData {
19 #[must_use]
21 pub fn new(LlamaToken(id): LlamaToken, logit: f32, p: f32) -> Self {
22 LlamaTokenData {
23 data: sys::llama_token_data { id, logit, p },
24 }
25 }
26
27 #[must_use]
29 pub fn id(&self) -> LlamaToken {
30 LlamaToken(self.data.id)
31 }
32
33 #[must_use]
35 pub fn logit(&self) -> f32 {
36 self.data.logit
37 }
38
39 #[must_use]
41 pub fn p(&self) -> f32 {
42 self.data.p
43 }
44
45 pub fn set_id(&mut self, id: LlamaToken) {
47 self.data.id = id.0;
48 }
49
50 pub fn set_logit(&mut self, logit: f32) {
52 self.data.logit = logit;
53 }
54
55 pub fn set_p(&mut self, p: f32) {
57 self.data.p = p;
58 }
59}