1
// begin rustme snippet: example
2
use serde_derive::{Deserialize, Serialize};
3
5
#[derive(Serialize, Deserialize, Debug, Eq, PartialEq)]
4
pub struct User {
5
    id: u64,
6
    name: String,
7
}
8

            
9
1
fn main() -> Result<(), pot::Error> {
10
1
    let user = User {
11
1
        id: 42,
12
1
        name: String::from("ecton"),
13
1
    };
14
1
    let serialized = pot::to_vec(&user)?;
15
1
    println!("User serialized: {serialized:02x?}");
16
1
    let deserialized: User = pot::from_slice(&serialized)?;
17
1
    assert_eq!(deserialized, user);
18

            
19
    // Pot also provides a "Value" type for serializing Pot-encoded payloads
20
    // without needing the original structure.
21
1
    let user: pot::Value<'_> = pot::from_slice(&serialized)?;
22
1
    println!("User decoded as value: {user}");
23
1

            
24
1
    Ok(())
25
1
}
26
// end rustme snippet
27

            
28
1
#[test]
29
1
fn runs() {
30
1
    main().unwrap();
31
1
}