32 lines
774 B
Rust
32 lines
774 B
Rust
use serde::{Deserialize, Serialize};
|
|
|
|
#[derive(Debug, PartialEq, Serialize, Deserialize)]
|
|
struct ServiceConfig {
|
|
name: String,
|
|
enabled: bool,
|
|
retries: i64,
|
|
endpoints: Vec<String>,
|
|
}
|
|
|
|
fn main() -> wson::Result<()> {
|
|
let value = ServiceConfig {
|
|
name: "worker".to_string(),
|
|
enabled: true,
|
|
retries: 3,
|
|
endpoints: vec![
|
|
"https://a.example".to_string(),
|
|
"https://b.example".to_string(),
|
|
],
|
|
};
|
|
|
|
let bytes = wson::to_vec(&value)?;
|
|
println!("jbon length: {} bytes", bytes.len());
|
|
println!("jbon prefix: {:02x?}", &bytes[..bytes.len().min(16)]);
|
|
|
|
let decoded: ServiceConfig = wson::from_slice(&bytes)?;
|
|
assert_eq!(decoded, value);
|
|
println!("round trip ok");
|
|
|
|
Ok(())
|
|
}
|