use crate::token::LlamaToken;
#[derive(Clone, Copy, Debug, PartialEq)]
#[repr(transparent)]
#[allow(clippy::module_name_repetitions)]
pub struct LlamaLogitBias {
logit_bias: fellhorn_llama_cpp_sys_2::llama_logit_bias,
}
impl LlamaLogitBias {
#[must_use]
pub fn new(LlamaToken(token): LlamaToken, bias: f32) -> Self {
Self {
logit_bias: fellhorn_llama_cpp_sys_2::llama_logit_bias { token, bias },
}
}
#[must_use]
pub fn token(&self) -> LlamaToken {
LlamaToken(self.logit_bias.token)
}
#[must_use]
pub fn bias(&self) -> f32 {
self.logit_bias.bias
}
pub fn set_token(&mut self, token: LlamaToken) {
self.logit_bias.token = token.0;
}
pub fn set_bias(&mut self, bias: f32) {
self.logit_bias.bias = bias;
}
}