openlegends_api/server/about/
response.rs1pub 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}