extern crate serde;
extern crate quick_xml;
use serde::{Deserialize};
use quick_xml::de::{from_str, DeError};
#[derive(Debug, Deserialize, PartialEq)]
pub struct IdList {
#[serde(rename = "Id", default)]
pub ids: Vec<String>
}
#[derive(Debug, Deserialize, PartialEq)]
pub struct Translation {
#[serde(rename = "From", default)]
pub from: String,
#[serde(rename = "To", default)]
pub to: String,
}
#[derive(Debug, Deserialize, PartialEq)]
pub struct TranslationSet {
#[serde(rename = "Translation")]
pub translation: Vec<Translation>
}
#[derive(Debug, Deserialize, PartialEq)]
pub struct TranslationStack {
#[serde(rename = "TermSet")]
pub term_set: Vec<TermSet>,
#[serde(rename = "OP")]
pub op: Vec<String>,
}
#[derive(Debug, Deserialize, PartialEq)]
pub struct TermSet {
#[serde(rename = "Term", default)]
pub term: String,
#[serde(rename = "Field", default)]
pub field: String,
#[serde(rename = "Count", default)]
pub count: u64,
#[serde(rename = "Explode", default)]
pub explode: String,
}
#[derive(Debug, Deserialize, PartialEq)]
pub struct ESearchResult {
#[serde(rename = "Count", default)]
pub count: u64,
#[serde(rename = "RetMax", default)]
pub ret_max: u64,
#[serde(rename = "RetStart", default)]
pub ret_start: u64,
#[serde(rename = "QueryKey", default)]
pub query_key: u64,
#[serde(rename = "WebEnv", default)]
pub web_env: String,
#[serde(rename = "IdList")]
pub id_list: IdList,
#[serde(rename = "QueryTranslation", default)]
pub query_translation: String,
}
impl ESearchResult {
pub fn read(xml: &str) -> Result<ESearchResult, DeError> {
from_str(xml)
}
}