dbus-message-parser 4.3.1

Libary to encode and decode DBus message
Documentation
use dbus_message_parser::value::{Bus, Error, Interface, Member, ObjectPath, Type};
use std::{convert::TryFrom, string::ToString};

#[test]
fn bus() {
    let bus = Bus::try_from(":1.1000").unwrap();
    assert_eq!(&bus.to_string(), ":1.1000");
}

#[test]
fn error() {
    let error = Error::try_from("this.is.an.error").unwrap();
    assert_eq!(&error.to_string(), "this.is.an.error");
}

#[test]
fn interface() {
    let interface = Interface::try_from("this.is.an.interface").unwrap();
    assert_eq!(&interface.to_string(), "this.is.an.interface");
}

#[test]
fn member() {
    let member = Member::try_from("Member").unwrap();
    assert_eq!(&member.to_string(), "Member");
}

#[test]
fn object_path() {
    let object_path = ObjectPath::try_from("/object/path").unwrap();
    assert_eq!(&object_path.to_string(), "/object/path");
}

#[test]
fn signature() {
    let signature = Type::try_from("aai").unwrap();
    assert_eq!(&signature.to_string(), "aai");
}

#[test]
fn type_byte() {
    assert_eq!(&Type::Byte.to_string(), "y");
}

#[test]
fn type_boolen() {
    assert_eq!(&Type::Boolean.to_string(), "b");
}

#[test]
fn type_int16() {
    assert_eq!(&Type::Int16.to_string(), "n");
}

#[test]
fn type_uint16() {
    assert_eq!(&Type::Uint16.to_string(), "q");
}

#[test]
fn type_int32() {
    assert_eq!(&Type::Int32.to_string(), "i");
}

#[test]
fn type_uint32() {
    assert_eq!(&Type::Uint32.to_string(), "u");
}

#[test]
fn type_int64() {
    assert_eq!(&Type::Int64.to_string(), "x");
}

#[test]
fn type_uint64() {
    assert_eq!(&Type::Uint64.to_string(), "t");
}

#[test]
#[cfg(target_family = "unix")]
fn type_unix_fd() {
    assert_eq!(&Type::UnixFD.to_string(), "h");
}

#[test]
fn type_double() {
    assert_eq!(&Type::Double.to_string(), "d");
}

#[test]
fn type_string() {
    assert_eq!(&Type::String.to_string(), "s");
}

#[test]
fn type_object_path() {
    assert_eq!(&Type::ObjectPath.to_string(), "o");
}

#[test]
fn type_variant() {
    assert_eq!(&Type::Variant.to_string(), "v");
}

#[test]
fn type_signature() {
    assert_eq!(&Type::Signature.to_string(), "g");
}

#[test]
fn type_array() {
    let type_ = Type::Int32;
    let type_ = Type::Array(Box::new(type_));
    assert_eq!(&type_.to_string(), "ai");
}

#[test]
fn type_struct() {
    let type_ = Type::Int32;
    let type_ = Type::Struct(vec![type_]);
    assert_eq!(&type_.to_string(), "(i)");
}

#[test]
fn type_dict_entry() {
    let key = Type::Int32;
    let value = Type::String;
    let type_ = Type::DictEntry(Box::new((key, value)));
    assert_eq!(&type_.to_string(), "{is}");
}