polyphony_types/entities/
config.rs1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3#[cfg(feature = "sqlx")]
4use sqlx::FromRow;
5
6#[derive(Debug, Serialize, Deserialize)]
7#[cfg_attr(feature = "sqlx", derive(FromRow))]
8pub struct ConfigEntity {
9 pub key: String,
10 pub value: Option<Value>,
11}
12
13impl ConfigEntity {
14 pub fn as_string(&self) -> Option<String> {
15 let Some(v) = self.value.as_ref() else {
16 return None;
17 };
18 Some(v.as_str().expect("value is not a string").to_string())
19 }
20
21 pub fn as_bool(&self) -> Option<bool> {
22 let Some(v) = self.value.as_ref() else {
23 return None;
24 };
25 Some(v.as_bool().expect("value is not a boolean"))
26 }
27
28 pub fn as_int(&self) -> Option<i64> {
29 let Some(v) = self.value.as_ref() else {
30 return None;
31 };
32 Some(v.as_i64().expect("value is not a number"))
33 }
34}