3
|
1
|
//! obj/src/types.rs --- OBJ type descriptions used by our demo |
|
2
|
use crate::{Error, Result, Objective, Serialize, Deserialize}; |
|
3
|
/// APPLICATION TYPES |
|
4
|
#[derive(Serialize, Deserialize)] |
|
5
|
pub enum Service { |
|
6
|
Nws, |
|
7
|
Fin, |
|
8
|
Pvp, |
|
9
|
} |
|
10
|
|
|
11
|
impl Objective for Service {} |
|
12
|
|
|
13
|
#[derive(Serialize, Deserialize)] |
|
14
|
pub struct Complex<X: Objective> { |
|
15
|
data: X, |
|
16
|
state: Vec<u8>, |
|
17
|
} |
|
18
|
|
|
19
|
impl Objective for Complex<Service> {} |
|
20
|
|
|
21
|
pub fn generate_complex() -> Result<Complex<Service>> { |
|
22
|
Ok(Complex::<Service>::from_json_str("hi")?) |
|
23
|
} |