ollama_oxide/inference/
think_setting.rs1use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
19#[serde(untagged)]
20pub enum ThinkSetting {
21 Enabled(bool),
23 Level(String),
25}
26
27impl ThinkSetting {
28 pub fn enabled() -> Self {
30 Self::Enabled(true)
31 }
32
33 pub fn disabled() -> Self {
35 Self::Enabled(false)
36 }
37
38 pub fn level(level: impl Into<String>) -> Self {
40 Self::Level(level.into())
41 }
42
43 pub fn high() -> Self {
45 Self::Level("high".to_string())
46 }
47
48 pub fn medium() -> Self {
50 Self::Level("medium".to_string())
51 }
52
53 pub fn low() -> Self {
55 Self::Level("low".to_string())
56 }
57}
58
59impl From<bool> for ThinkSetting {
60 fn from(b: bool) -> Self {
61 Self::Enabled(b)
62 }
63}
64
65impl From<&str> for ThinkSetting {
66 fn from(s: &str) -> Self {
67 Self::Level(s.to_string())
68 }
69}