llama_cpp_bindings/model/grammar_trigger.rs
1use crate::token::LlamaToken;
2
3/// Grammar trigger kinds used for lazy grammar sampling.
4#[derive(Debug, Clone, Copy, PartialEq, Eq)]
5pub enum GrammarTriggerType {
6 /// Trigger on a specific token.
7 Token = 0,
8 /// Trigger on a literal word.
9 Word = 1,
10 /// Trigger on a regex pattern.
11 Pattern = 2,
12 /// Trigger on a fully anchored regex pattern.
13 PatternFull = 3,
14}
15
16/// Lazy grammar trigger from chat template generation.
17#[derive(Debug, Clone, PartialEq, Eq)]
18pub struct GrammarTrigger {
19 /// Trigger kind.
20 pub trigger_type: GrammarTriggerType,
21 /// Trigger text or pattern.
22 pub value: String,
23 /// Token id for token triggers.
24 pub token: Option<LlamaToken>,
25}