eoka_protocol/
response.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Serialize, Deserialize, schemars::JsonSchema)]
4pub struct Response {
5 pub ok: bool,
6 #[serde(skip_serializing_if = "Option::is_none")]
7 pub data: Option<serde_json::Value>,
8 #[serde(skip_serializing_if = "Option::is_none")]
9 pub error: Option<String>,
10}
11
12impl Response {
13 pub fn ok(data: impl Into<serde_json::Value>) -> Self {
14 Self {
15 ok: true,
16 data: Some(data.into()),
17 error: None,
18 }
19 }
20
21 pub fn ok_text(msg: impl Into<String>) -> Self {
22 Self::ok(serde_json::Value::String(msg.into()))
23 }
24
25 pub fn err(msg: impl Into<String>) -> Self {
26 Self {
27 ok: false,
28 data: None,
29 error: Some(msg.into()),
30 }
31 }
32}