lm_studio_api/chat/
format.rs1use crate::prelude::*;
2use super::schema::*;
3
4#[derive(Debug, Display, Clone, Serialize, Deserialize, Eq, PartialEq)]
6pub enum FormatKind {
7 #[serde(rename = "json_schema")]
8 #[display = "json_schema"]
9 Json,
10}
11
12#[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq)]
14pub struct Format {
15 #[serde(rename = "type")]
16 pub kind: FormatKind,
17 #[serde(rename = "json_schema")]
18 pub schema: JsonSchema,
19}
20
21impl Format {
22 pub fn json<S: Into<String>>(name: S, schemes: Vec<Schema>, strict: bool) -> Self {
23 Self {
24 kind: FormatKind::Json,
25 schema: JsonSchema {
26 name: name.into(),
27 schemes: Schemes::OneOf(schemes),
28 strict,
29 }
30 }
31 }
32}