use serde_json;
use x_variant::Variant;
fn main() {
let mut v = Variant::new();
println!("Variant: {:?}", v);
v.set(20);
let i: i32 = v.get();
println!("Variant: {:?}", v);
println!("i: {}", i);
v.set("Hello, world!");
println!("Variant: {:?}", v);
let mut v = Variant::new_dict();
v["key"] = "value".into();
v["i"] = 12.into();
v["x"]["y"] = 3.1415926f64.into();
println!("Variant: {:?}", v);
let f: f64 = v["x"]["y"].get();
println!("f = {}", f);
let json = serde_json::to_string(&v).unwrap();
println!("JSON: {}", json);
let v = serde_json::from_str::<Variant>(&json).unwrap();
println!("Variant: {:?}", v);
}