use serde_derive::Deserialize;
#[derive(Deserialize, Debug)]
#[serde(rename_all = "camelCase")]
pub struct Request {
pub name: Option<String>, pub code_id: Option<String>,
pub debug_name: Option<String>, pub debug_id: Option<String>,
#[serde(deserialize_with = "crate::hex::from_prefixed_hex_str")]
pub start_address: u32,
#[serde(deserialize_with = "crate::hex::from_prefixed_hex_str")]
pub size: u32,
#[serde(default)]
pub continue_until_function_end: bool,
}
#[cfg(test)]
mod test {
use serde_json::Result;
use super::Request;
#[test]
fn parse_job() -> Result<()> {
let data = r#"
{
"debugName": "xul.pdb",
"debugId": "A14CAFD390A3E1884C4C44205044422E1",
"startAddress": "0x1d04742",
"size": "0x84"
}"#;
let r: Request = serde_json::from_str(data)?;
assert_eq!(r.start_address, 30426946);
assert_eq!(r.debug_id, Some("A14CAFD390A3E1884C4C44205044422E1".into()));
assert!(!r.continue_until_function_end);
Ok(())
}
}