mirror of
https://gitlab.com/xmpp-rs/xmpp-rs.git
synced 2024-07-12 22:21:53 +00:00
Move Base64 codec into a helper module.
This commit is contained in:
parent
3e37beffe2
commit
ad17c877f5
3 changed files with 24 additions and 14 deletions
21
src/helpers.rs
Normal file
21
src/helpers.rs
Normal file
|
@ -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)
|
||||
}
|
||||
}
|
15
src/ibb.rs
15
src/ibb.rs
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue