diff options
-rw-r--r-- | Cargo.toml | 1 | ||||
-rw-r--r-- | src/call/account.rs | 20 | ||||
-rw-r--r-- | src/call/mod.rs | 1 | ||||
-rw-r--r-- | src/lib.rs | 1 |
4 files changed, 23 insertions, 0 deletions
@@ -8,3 +8,4 @@ edition = "2021" [dependencies] reqwest = { version = "0.11", features = ["blocking", "cookies"] } url = "2.2.2" +xmlrpc = "0.15.1" 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; @@ -1,3 +1,4 @@ +pub mod call; pub mod client; pub mod error; |