use serde::{self, Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug)]
pub struct Params {
#[serde(rename = "contextid")]
pub r#contextid: Option<i64>,
#[serde(rename = "element")]
pub r#element: Option<String>,
}
pub type r#ReturnsBranchesItemBranchesItemBranches = Vec<String>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsBranchesItemBranchesItem {
#[serde(rename = "text")]
pub r#text: Option<String>,
#[serde(rename = "expandcontextid")]
pub r#expandcontextid: Option<i64>,
#[serde(rename = "expandelement")]
pub r#expandelement: Option<String>,
#[serde(rename = "contextid")]
pub r#contextid: Option<i64>,
#[serde(rename = "contextlevel")]
pub r#contextlevel: Option<i64>,
#[serde(rename = "expanded")]
pub r#expanded: Option<i64>,
#[serde(rename = "branches")]
pub r#branches: Option<r#ReturnsBranchesItemBranchesItemBranches>,
}
pub type r#ReturnsBranchesItemBranches = Vec<ReturnsBranchesItemBranchesItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsBranchesItem {
#[serde(rename = "text")]
pub r#text: Option<String>,
#[serde(rename = "expandcontextid")]
pub r#expandcontextid: Option<i64>,
#[serde(rename = "expandelement")]
pub r#expandelement: Option<String>,
#[serde(rename = "contextid")]
pub r#contextid: Option<i64>,
#[serde(rename = "contextlevel")]
pub r#contextlevel: Option<i64>,
#[serde(rename = "expanded")]
pub r#expanded: Option<i64>,
#[serde(rename = "branches")]
pub r#branches: Option<r#ReturnsBranchesItemBranches>,
}
pub type r#ReturnsBranches = Vec<ReturnsBranchesItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ReturnsWarningsItem {
#[serde(rename = "item")]
pub r#item: Option<String>,
#[serde(rename = "itemid")]
pub r#itemid: Option<i64>,
#[serde(rename = "warningcode")]
pub r#warningcode: Option<String>,
#[serde(rename = "message")]
pub r#message: Option<String>,
}
pub type r#ReturnsWarnings = Vec<ReturnsWarningsItem>;
#[derive(Serialize, Deserialize, Debug)]
pub struct Returns {
#[serde(rename = "branches")]
pub r#branches: Option<r#ReturnsBranches>,
#[serde(rename = "warnings")]
pub r#warnings: Option<r#ReturnsWarnings>,
}
pub async fn call<'a>(
client: &'a mut moodle_client::MoodleClient,
params: &'a mut Params,
) -> anyhow::Result<Returns> {
let json = client
.post("tool_dataprivacy_tree_extra_branches", params)
.await?;
serde_json::from_value(json).map_err(|e| e.into())
}
pub async fn call_raw<'a>(
client: &'a mut moodle_client::MoodleClient,
params: &'a mut Params,
) -> anyhow::Result<serde_json::Value> {
client
.post("tool_dataprivacy_tree_extra_branches", params)
.await
}