#[repr(u32)]
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum LlamaContextType {
Default = llama_cpp_sys_4::LLAMA_CONTEXT_TYPE_DEFAULT,
Mtp = llama_cpp_sys_4::LLAMA_CONTEXT_TYPE_MTP,
}
impl From<llama_cpp_sys_4::llama_context_type> for LlamaContextType {
fn from(value: llama_cpp_sys_4::llama_context_type) -> Self {
if value == llama_cpp_sys_4::LLAMA_CONTEXT_TYPE_MTP {
Self::Mtp
} else {
Self::Default
}
}
}
impl From<LlamaContextType> for llama_cpp_sys_4::llama_context_type {
fn from(value: LlamaContextType) -> Self {
value as u32 as Self
}
}
#[repr(i32)]
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum LlamaAttentionType {
Unspecified = llama_cpp_sys_4::LLAMA_ATTENTION_TYPE_UNSPECIFIED,
Causal = llama_cpp_sys_4::LLAMA_ATTENTION_TYPE_CAUSAL,
NonCausal = llama_cpp_sys_4::LLAMA_ATTENTION_TYPE_NON_CAUSAL,
}
impl From<i32> for LlamaAttentionType {
fn from(value: i32) -> Self {
match value {
0 => Self::Causal,
1 => Self::NonCausal,
_ => Self::Unspecified,
}
}
}
impl From<LlamaAttentionType> for i32 {
fn from(value: LlamaAttentionType) -> Self {
value as i32
}
}
#[repr(i32)]
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum LlamaFlashAttnType {
Auto = llama_cpp_sys_4::LLAMA_FLASH_ATTN_TYPE_AUTO,
Disabled = llama_cpp_sys_4::LLAMA_FLASH_ATTN_TYPE_DISABLED,
Enabled = llama_cpp_sys_4::LLAMA_FLASH_ATTN_TYPE_ENABLED,
}
impl From<i32> for LlamaFlashAttnType {
fn from(value: i32) -> Self {
match value {
0 => Self::Disabled,
1 => Self::Enabled,
_ => Self::Auto,
}
}
}
impl From<LlamaFlashAttnType> for i32 {
fn from(value: LlamaFlashAttnType) -> Self {
value as i32
}
}
#[repr(i8)]
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum RopeScalingType {
Unspecified = -1,
None = 0,
Linear = 1,
Yarn = 2,
}
impl From<i32> for RopeScalingType {
fn from(value: i32) -> Self {
match value {
0 => Self::None,
1 => Self::Linear,
2 => Self::Yarn,
_ => Self::Unspecified,
}
}
}
impl From<RopeScalingType> for i32 {
fn from(value: RopeScalingType) -> Self {
match value {
RopeScalingType::None => 0,
RopeScalingType::Linear => 1,
RopeScalingType::Yarn => 2,
RopeScalingType::Unspecified => -1,
}
}
}
#[repr(i8)]
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
pub enum LlamaPoolingType {
Unspecified = -1,
None = 0,
Mean = 1,
Cls = 2,
Last = 3,
Rank = 4,
}
impl From<i32> for LlamaPoolingType {
fn from(value: i32) -> Self {
match value {
0 => Self::None,
1 => Self::Mean,
2 => Self::Cls,
3 => Self::Last,
4 => Self::Rank,
_ => Self::Unspecified,
}
}
}
impl From<LlamaPoolingType> for i32 {
fn from(value: LlamaPoolingType) -> Self {
match value {
LlamaPoolingType::None => 0,
LlamaPoolingType::Mean => 1,
LlamaPoolingType::Cls => 2,
LlamaPoolingType::Last => 3,
LlamaPoolingType::Rank => 4,
LlamaPoolingType::Unspecified => -1,
}
}
}