use serde::Deserialize;
#[derive(Debug, Clone, PartialEq, Eq, Deserialize)]
pub struct RatesLoginResponse {
pub response: String,
#[serde(default)]
pub message: String,
}
impl RatesLoginResponse {
pub fn accepted(&self) -> bool {
self.response == "ok"
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn decodes_observed_payloads() {
let ok: RatesLoginResponse =
serde_json::from_str(r#"{"response":"ok","message":"","error":0}"#).unwrap();
assert!(ok.accepted());
let no: RatesLoginResponse =
serde_json::from_str(r#"{"response":"no","message":"Invalid login.","error":0}"#)
.unwrap();
assert!(!no.accepted());
assert_eq!(no.message, "Invalid login.");
}
}