Skip to main content

ds_api/raw/response/streaming/
delta.rs

1use serde::Deserialize;
2
3use crate::raw::request::message::{Role, ToolType};
4
5// Delta is similar to Message, but `tool_calls` are incremental (include an index)
6#[derive(Debug, Deserialize)]
7pub struct Delta {
8    #[serde(default)]
9    pub content: Option<String>,
10    #[serde(default)]
11    pub reasoning_content: Option<String>,
12    #[serde(default)]
13    pub role: Option<Role>,
14    #[serde(default)]
15    pub tool_calls: Option<Vec<DeltaToolCall>>,
16}
17
18#[derive(Debug, Deserialize)]
19pub struct DeltaToolCall {
20    pub index: u32,
21    #[serde(default)]
22    pub id: Option<String>,
23    #[serde(default)]
24    pub r#type: Option<ToolType>,
25    #[serde(default)]
26    pub function: Option<DeltaFunctionCall>,
27}
28
29#[derive(Debug, Deserialize)]
30pub struct DeltaFunctionCall {
31    #[serde(default)]
32    pub name: Option<String>,
33    #[serde(default)]
34    pub arguments: Option<String>,
35}