#[repr(u32)]
#[derive(Eq, PartialEq, Debug, Clone, Copy)]
#[allow(clippy::module_name_repetitions)]
pub enum LlamaTokenType {
Undefined = llama_cpp_sys_2::LLAMA_TOKEN_TYPE_UNDEFINED,
Normal = llama_cpp_sys_2::LLAMA_TOKEN_TYPE_NORMAL,
Unknown = llama_cpp_sys_2::LLAMA_TOKEN_TYPE_UNKNOWN,
Control = llama_cpp_sys_2::LLAMA_TOKEN_TYPE_CONTROL,
UserDefined = llama_cpp_sys_2::LLAMA_TOKEN_TYPE_USER_DEFINED,
Unused = llama_cpp_sys_2::LLAMA_TOKEN_TYPE_UNUSED,
Byte = llama_cpp_sys_2::LLAMA_TOKEN_TYPE_BYTE,
}
impl TryFrom<llama_cpp_sys_2::llama_token_type> for LlamaTokenType {
type Error = LlamaTokenTypeFromIntError;
fn try_from(value: llama_cpp_sys_2::llama_vocab_type) -> Result<Self, Self::Error> {
match value {
llama_cpp_sys_2::LLAMA_TOKEN_TYPE_UNDEFINED => Ok(LlamaTokenType::Undefined),
llama_cpp_sys_2::LLAMA_TOKEN_TYPE_NORMAL => Ok(LlamaTokenType::Normal),
llama_cpp_sys_2::LLAMA_TOKEN_TYPE_UNKNOWN => Ok(LlamaTokenType::Unknown),
llama_cpp_sys_2::LLAMA_TOKEN_TYPE_CONTROL => Ok(LlamaTokenType::Control),
llama_cpp_sys_2::LLAMA_TOKEN_TYPE_USER_DEFINED => Ok(LlamaTokenType::UserDefined),
llama_cpp_sys_2::LLAMA_TOKEN_TYPE_UNUSED => Ok(LlamaTokenType::Unused),
llama_cpp_sys_2::LLAMA_TOKEN_TYPE_BYTE => Ok(LlamaTokenType::Byte),
_ => Err(LlamaTokenTypeFromIntError::UnknownValue(value)),
}
}
}
#[derive(thiserror::Error, Debug, Eq, PartialEq)]
pub enum LlamaTokenTypeFromIntError {
#[error("Unknown Value {0}")]
UnknownValue(std::ffi::c_uint),
}