mirror of
https://github.com/rustdesk/rustdesk.git
synced 2024-12-19 06:31:02 +08:00
95 lines
2.0 KiB
Rust
95 lines
2.0 KiB
Rust
#![allow(unused_variables)]
|
|
|
|
extern crate sciter;
|
|
extern crate sciter_serde;
|
|
|
|
#[macro_use]
|
|
extern crate serde_derive;
|
|
extern crate serde_bytes;
|
|
extern crate serde;
|
|
|
|
use sciter::{Value};
|
|
use sciter_serde::{from_value, to_value};
|
|
|
|
|
|
#[test]
|
|
fn basic_types() {
|
|
// bool
|
|
let v: bool = from_value(&Value::from(true)).unwrap();
|
|
assert_eq!(v, true);
|
|
|
|
// integer types
|
|
let v: i32 = from_value(&Value::from(0)).unwrap();
|
|
assert_eq!(v, 0);
|
|
|
|
let v: i32 = from_value(&Value::from(7i32)).unwrap();
|
|
assert_eq!(v, 7i32);
|
|
|
|
// float
|
|
let v: f32 = from_value(&Value::from(7.0)).unwrap();
|
|
assert_eq!(v, 7.0);
|
|
|
|
let v: f64 = from_value(&Value::from(7.0)).unwrap();
|
|
assert_eq!(v, 7.0);
|
|
|
|
// Option
|
|
let v = Value::null();
|
|
let v: Option<i32> = from_value(&v).unwrap();
|
|
assert_eq!(v, None);
|
|
|
|
let v = Value::from(7);
|
|
let v: Option<i32> = from_value(&v).unwrap();
|
|
assert_eq!(v, Some(7));
|
|
}
|
|
|
|
#[test]
|
|
fn strings() {
|
|
let v: char = from_value(&Value::from("7")).unwrap();
|
|
assert_eq!(v, '7');
|
|
|
|
let v: String = from_value(&Value::from("7")).unwrap();
|
|
assert_eq!(v, "7");
|
|
|
|
let v: serde_bytes::ByteBuf = from_value(&Value::from(b"hello".as_ref())).unwrap();
|
|
let v: &[u8] = &v;
|
|
assert_eq!(v, b"hello".as_ref());
|
|
}
|
|
|
|
#[test]
|
|
fn arrays() {
|
|
let it = [1,2,3].iter();
|
|
let v: Value = it.cloned().collect();
|
|
let v: Vec<i32> = from_value(&v).unwrap();
|
|
assert_eq!(v, &[1,2,3]);
|
|
}
|
|
|
|
#[test]
|
|
fn structs() {
|
|
#[derive(Serialize, Deserialize, PartialEq, Debug)]
|
|
struct Test {
|
|
int: u32,
|
|
seq: Vec<String>,
|
|
}
|
|
|
|
println!("");
|
|
|
|
let a = Test { int: 7, seq: vec!["a".to_owned(), "b".to_owned()]};
|
|
|
|
let v: Value = to_value(&a).unwrap();
|
|
println!("serialized Test:\n {:?}", v);
|
|
|
|
println!("keys:");
|
|
v.keys().inspect(|i| println!(" {:?}", i)).count();
|
|
|
|
println!("values:");
|
|
v.values().inspect(|i| println!(" {:?}", i)).count();
|
|
|
|
println!("items:");
|
|
v.items().iter().inspect(|i| println!(" {:?}", i)).count();
|
|
|
|
let e: Test = from_value(&v).unwrap();
|
|
println!("deserialized Test:\n {:?}", e);
|
|
|
|
assert_eq!(a, e);
|
|
}
|