use std::collections::BTreeMap;
use xmlrpc::Request as XMLRequest;
pub use xmlrpc::Value;
pub struct Request {
method: String,
params: BTreeMap<String, Value>,
}
impl Request {
pub fn new(method: &str) -> Self {
Self {
method: method.to_owned(),
params: BTreeMap::new(),
}
}
pub fn param(&mut self, name: &str, value: Value) -> Option<Value> {
self.params.insert(name.to_owned(), value)
}
pub(crate) fn build(&self) -> XMLRequest {
XMLRequest::new(&self.method).arg(Value::Struct(self.params.clone()))
}
}