changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > demo / annotate obj/src/types.rs

changeset 3: 8f59e2f1b8c4
child: 315fedf35bc7
author: ellis <ellis@rwest.io>
date: Fri, 05 May 2023 22:41:30 -0400
permissions: -rw-r--r--
description: stuff
3
ellis <ellis@rwest.io>
parents:
diff changeset
1
 //! obj/src/types.rs --- OBJ type descriptions used by our demo
ellis <ellis@rwest.io>
parents:
diff changeset
2
 use crate::{Error, Result, Objective, Serialize, Deserialize};
ellis <ellis@rwest.io>
parents:
diff changeset
3
 /// APPLICATION TYPES
ellis <ellis@rwest.io>
parents:
diff changeset
4
 #[derive(Serialize, Deserialize)]
ellis <ellis@rwest.io>
parents:
diff changeset
5
 pub enum Service {
ellis <ellis@rwest.io>
parents:
diff changeset
6
   Nws,
ellis <ellis@rwest.io>
parents:
diff changeset
7
   Fin,
ellis <ellis@rwest.io>
parents:
diff changeset
8
   Pvp,
ellis <ellis@rwest.io>
parents:
diff changeset
9
 }
ellis <ellis@rwest.io>
parents:
diff changeset
10
 
ellis <ellis@rwest.io>
parents:
diff changeset
11
 impl Objective for Service {}
ellis <ellis@rwest.io>
parents:
diff changeset
12
 
ellis <ellis@rwest.io>
parents:
diff changeset
13
 #[derive(Serialize, Deserialize)]
ellis <ellis@rwest.io>
parents:
diff changeset
14
 pub struct Complex<X: Objective> {
ellis <ellis@rwest.io>
parents:
diff changeset
15
   data: X,
ellis <ellis@rwest.io>
parents:
diff changeset
16
   state: Vec<u8>,
ellis <ellis@rwest.io>
parents:
diff changeset
17
 }
ellis <ellis@rwest.io>
parents:
diff changeset
18
 
ellis <ellis@rwest.io>
parents:
diff changeset
19
 impl Objective for Complex<Service> {}
ellis <ellis@rwest.io>
parents:
diff changeset
20
 
ellis <ellis@rwest.io>
parents:
diff changeset
21
 pub fn generate_complex() -> Result<Complex<Service>> {
ellis <ellis@rwest.io>
parents:
diff changeset
22
   Ok(Complex::<Service>::from_json_str("hi")?)
ellis <ellis@rwest.io>
parents:
diff changeset
23
 }