use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct TalkMessage {
pub to: String,
pub to_role: String,
pub msg: String,
pub msg_type: String,
}
impl TalkMessage {
pub fn parse(data: &Option<serde_json::Value>) -> Result<Self, String> {
if let Some(data) = data {
match crate::commons::json_value_to_generic2::<Self>(data) {
Ok(data) => Ok(data),
Err(err) => Err(format!("invalid data: error={}", err)),
}
} else {
Err("data field is required".to_string())
}
}
}