@@ -0,0 +1,21 @@
+// Copyright (c) 2017 Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
+//
+// This Source Code Form is subject to the terms of the Mozilla Public
+// License, v. 2.0. If a copy of the MPL was not distributed with this
+// file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+use base64;
+use error::Error;
+
+/// Codec wrapping base64 encode/decode
+pub struct Base64;
+
+impl Base64 {
+ pub fn decode(s: &str) -> Result<Vec<u8>, Error> {
+ Ok(base64::decode(s)?)
+ }
+
+ pub fn encode(b: &Vec<u8>) -> String {
+ base64::encode(b)
+ }
+}
@@ -8,11 +8,11 @@ use try_from::TryFrom;
use std::str::FromStr;
use minidom::{Element, IntoAttributeValue};
-use base64;
use error::Error;
use ns;
+use helpers::Base64;
generate_attribute!(Stanza, "stanza", {
Iq => "iq",
@@ -25,19 +25,6 @@ generate_element_with_only_attributes!(Open, "open", ns::IBB, [
stanza: Stanza = "stanza" => default,
]);
-/// Codec wrapping base64 encode/decode
-struct Base64;
-
-impl Base64 {
- fn decode(s: &str) -> Result<Vec<u8>, Error> {
- Ok(base64::decode(s)?)
- }
-
- fn encode(b: &Vec<u8>) -> String {
- base64::encode(b)
- }
-}
-
generate_element_with_text!(Data, "data", ns::IBB,
[
seq: u16 = "seq" => required,
@@ -37,6 +37,8 @@ extern crate try_from;
pub mod error;
/// XML namespace definitions used through XMPP.
pub mod ns;
+/// Various helpers.
+pub mod helpers;
/// Helper macros to parse and serialise more easily.
#[macro_use]
pub mod macros;