openrouter_rs/types/
mod.rs1pub mod completion;
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Serialize, Deserialize, Debug)]
6pub struct ApiResponse<T> {
7 pub data: T,
8}
9
10#[derive(Serialize, Deserialize, Debug, Clone)]
11#[serde(rename_all = "lowercase")]
12pub enum Role {
13 System,
14 Developer,
15 User,
16 Assistant,
17 Tool,
18}
19
20impl ToString for Role {
21 fn to_string(&self) -> String {
22 match self {
23 Role::System => "system".to_string(),
24 Role::Developer => "developer".to_string(),
25 Role::User => "user".to_string(),
26 Role::Assistant => "assistant".to_string(),
27 Role::Tool => "tool".to_string(),
28 }
29 }
30}
31
32#[derive(Serialize, Deserialize, Debug, Clone)]
33#[serde(rename_all = "lowercase")]
34pub enum Effort {
35 High,
36 Medium,
37 Low,
38}
39
40impl ToString for Effort {
41 fn to_string(&self) -> String {
42 match self {
43 Effort::High => "high".to_string(),
44 Effort::Medium => "medium".to_string(),
45 Effort::Low => "low".to_string(),
46 }
47 }
48}
49
50#[derive(Serialize, Deserialize, Debug, Clone)]
51pub struct ProviderPreferences {
52 sort: Option<String>,
53}
54
55#[derive(Serialize, Deserialize, Debug, Clone)]
56pub struct ReasoningConfig {
57 effort: Option<Effort>,
58 max_tokens: Option<u32>,
59 exclude: Option<bool>,
60}