use super::Kalshi;
use crate::kalshi_error::*;
use serde::{Deserialize, Serialize};
impl Kalshi {
pub async fn get_structured_targets(&self) -> Result<Vec<StructuredTarget>, KalshiError> {
let path = "/structured_targets";
let res: StructuredTargetsResponse = self.signed_get(path).await?;
Ok(res.targets)
}
pub async fn get_structured_target(
&self,
target_id: &str,
) -> Result<StructuredTarget, KalshiError> {
let path = format!("/structured_targets/{}", target_id);
let res: StructuredTargetResponse = self.signed_get(&path).await?;
Ok(res.target)
}
}
#[derive(Debug, Deserialize)]
struct StructuredTargetsResponse {
targets: Vec<StructuredTarget>,
}
#[derive(Debug, Deserialize)]
struct StructuredTargetResponse {
target: StructuredTarget,
}
#[derive(Debug, Deserialize, Serialize)]
pub struct StructuredTarget {
pub id: String,
pub title: String,
#[serde(flatten)]
pub details: std::collections::HashMap<String, serde_json::Value>,
}