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 std::str::FromStr;
|
||||||
|
|
||||||
use minidom::{Element, IntoAttributeValue};
|
use minidom::{Element, IntoAttributeValue};
|
||||||
use base64;
|
|
||||||
|
|
||||||
use error::Error;
|
use error::Error;
|
||||||
|
|
||||||
use ns;
|
use ns;
|
||||||
|
use helpers::Base64;
|
||||||
|
|
||||||
generate_attribute!(Stanza, "stanza", {
|
generate_attribute!(Stanza, "stanza", {
|
||||||
Iq => "iq",
|
Iq => "iq",
|
||||||
|
@ -25,19 +25,6 @@ generate_element_with_only_attributes!(Open, "open", ns::IBB, [
|
||||||
stanza: Stanza = "stanza" => default,
|
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,
|
generate_element_with_text!(Data, "data", ns::IBB,
|
||||||
[
|
[
|
||||||
seq: u16 = "seq" => required,
|
seq: u16 = "seq" => required,
|
||||||
|
|
|
@ -37,6 +37,8 @@ extern crate try_from;
|
||||||
pub mod error;
|
pub mod error;
|
||||||
/// XML namespace definitions used through XMPP.
|
/// XML namespace definitions used through XMPP.
|
||||||
pub mod ns;
|
pub mod ns;
|
||||||
|
/// Various helpers.
|
||||||
|
pub mod helpers;
|
||||||
/// Helper macros to parse and serialise more easily.
|
/// Helper macros to parse and serialise more easily.
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
pub mod macros;
|
pub mod macros;
|
||||||
|
|
Loading…
Reference in a new issue