openlegends_api/server/about/
response.rs

1pub mod error;
2pub use error::Error;
3
4use serde::{Deserialize, Serialize};
5
6#[derive(Serialize, Deserialize, Debug)]
7pub struct Response {
8    pub version: String,
9}
10
11impl Default for Response {
12    fn default() -> Self {
13        Self::new()
14    }
15}
16
17impl Response {
18    pub fn new() -> Self {
19        Self {
20            version: env!("CARGO_PKG_VERSION").to_string(),
21        }
22    }
23
24    pub fn from_json(json: &str) -> Result<Self, Error> {
25        match serde_json::from_str::<Response>(json) {
26            Ok(data) => Ok(Self {
27                version: data.version,
28            }),
29            Err(e) => Err(Error::Json(e)),
30        }
31    }
32
33    pub fn to_json(&self) -> Result<String, Error> {
34        match serde_json::to_string(&self) {
35            Ok(json) => Ok(json),
36            Err(e) => Err(Error::Json(e)),
37        }
38    }
39
40    pub fn version(&self) -> &str {
41        &self.version
42    }
43}