aboutsummaryrefslogtreecommitdiff
path: root/src/call
diff options
context:
space:
mode:
Diffstat (limited to 'src/call')
-rw-r--r--src/call/account.rs20
-rw-r--r--src/call/mod.rs1
2 files changed, 21 insertions, 0 deletions
diff --git a/src/call/account.rs b/src/call/account.rs
new file mode 100644
index 0000000..c2434a7
--- /dev/null
+++ b/src/call/account.rs
@@ -0,0 +1,20 @@
+use std::collections::BTreeMap;
+
+// Contains login information. Used to create an API session.
+pub(crate) struct Login<'a> {
+ pub(crate) user: &'a str,
+ pub(crate) pass: &'a str,
+ pub(crate) case_insensitive: bool,
+}
+
+impl From<Login<'_>> for xmlrpc::Value {
+ fn from(login: Login<'_>) -> Self {
+ let mut map = BTreeMap::new();
+
+ map.insert("user".into(), login.user.into());
+ map.insert("pass".into(), login.pass.into());
+ map.insert("case-insensitive".into(), login.case_insensitive.into());
+
+ xmlrpc::Value::Struct(map)
+ }
+}
diff --git a/src/call/mod.rs b/src/call/mod.rs
new file mode 100644
index 0000000..b0edc6c
--- /dev/null
+++ b/src/call/mod.rs
@@ -0,0 +1 @@
+pub mod account;