Struct tuf::interchange::JsonDataInterchange [] [src]

pub struct JsonDataInterchange {}

JSON data interchange.

Trait Implementations

impl Debug for JsonDataInterchange
[src]

Formats the value using the given formatter.

impl PartialEq for JsonDataInterchange
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl DataInterchange for JsonDataInterchange
[src]

The type of data that is contained in the signed portion of metadata.

use tuf::interchange::{DataInterchange, JsonDataInterchange};

assert_eq!(JsonDataInterchange::extension(), "json");

use tuf::interchange::{DataInterchange, JsonDataInterchange};
use std::collections::HashMap;

let jsn: &[u8] = br#"{"foo": "bar", "baz": "quux"}"#;
let raw = JsonDataInterchange::from_reader(jsn).unwrap();
let out = JsonDataInterchange::canonicalize(&raw).unwrap();
assert_eq!(out, br#"{"baz":"quux","foo":"bar"}"#);

#[macro_use]
extern crate serde_derive;
#[macro_use]
extern crate serde_json;
extern crate tuf;

use tuf::interchange::{DataInterchange, JsonDataInterchange};
use std::collections::HashMap;

#[derive(Deserialize, Debug, PartialEq)]
struct Thing {
   foo: String,
   bar: String,
}

fn main() {
    let jsn = json!({"foo": "wat", "bar": "lol"});
    let thing = Thing { foo: "wat".into(), bar: "lol".into() };
    let de: Thing = JsonDataInterchange::deserialize(&jsn).unwrap();
    assert_eq!(de, thing);
}

#[macro_use]
extern crate serde_derive;
#[macro_use]
extern crate serde_json;
extern crate tuf;

use tuf::interchange::{DataInterchange, JsonDataInterchange};
use std::collections::HashMap;

#[derive(Serialize)]
struct Thing {
   foo: String,
   bar: String,
}

fn main() {
    let jsn = json!({"foo": "wat", "bar": "lol"});
    let thing = Thing { foo: "wat".into(), bar: "lol".into() };
    let se: serde_json::Value = JsonDataInterchange::serialize(&thing).unwrap();
    assert_eq!(se, jsn);
}

use tuf::interchange::{DataInterchange, JsonDataInterchange};

let arr = vec![1, 2, 3];
let mut buf = Vec::new();
JsonDataInterchange::to_writer(&mut buf, &arr).unwrap();
assert!(&buf == b"[1, 2, 3]" || &buf == b"[1,2,3]");

use tuf::interchange::{DataInterchange, JsonDataInterchange};
use std::collections::HashMap;

let jsn: &[u8] = br#"{"foo": "bar", "baz": "quux"}"#;
let _: HashMap<String, String> = JsonDataInterchange::from_reader(jsn).unwrap();