1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
extern crate unbase;
extern crate serde;
extern crate serde_json;
/*
use serde::de::*;
use unbase::subject::Subject;
use unbase::memo::{Memo,PeeringStatus};
use unbase::slab::Slab;
use unbase::network::{Network,Packet};
use unbase::network::packet::serde::PacketSeed;
*/
//use serde_json;
/*
#[test]
fn serialize() {
let net = unbase::Network::create_new_system();
//let simulator = unbase::network::transport::Simulator::new();
//net.add_transport( Box::new(simulator.clone()) );
let slab_a = unbase::Slab::new(&net);
let context_a = slab_a.create_context();
let record = Subject::new_kv(&context_a, "animal_type","Cat").unwrap();
let net2 = unbase::Network::new();
//let simulator = unbase::network::transport::Simulator::new();
//net.add_transport( Box::new(simulator.clone()) );
let slab_b = unbase::Slab::new(&net);
check_roundtrip(&record, &net2, &slab_b);
}
fn check_roundtrip(record: &Subject, net: &Network, slab: &Slab){
let memo = &record.get_head().to_vec()[0].get_memo(slab).unwrap();
let packet = Packet{
to_slab_id: 1,
from_slab_id: 0,
from_slab_peering_status: MemoPeeringStatus::Resident,
memo: memo.clone()
};
let encoded = serde_json::to_string(&packet).expect("serde_json::to_string");
println!("{}", encoded );
let decoded_packet : Packet;
{
let packet_seed : PacketSeed = PacketSeed{ net: &net };
let mut deserializer = serde_json::Deserializer::from_str(&encoded);
decoded_packet = packet_seed.deserialize(&mut deserializer).expect("packet_seed.deserialize");
}
let decoded_memo : Memo = decoded_packet.memo;
assert_eq!(*memo, decoded_memo);
}
*/