volt_ws_protocol/
volt_configuration.rs

1use serde::{Deserialize, Serialize};
2
3// Relay configuration can be either a url or an object containing a url.
4// Define the Relay enum to handle different types of relay values.
5#[derive(Clone, Serialize, Deserialize, Debug)]
6#[serde(untagged)]
7pub enum RelayConfiguration {
8    String(String),
9    Object(RelayObject),
10}
11
12// Define the RelayObject struct to handle the object type of relay value.
13#[derive(Clone, Serialize, Deserialize, Default, Debug)]
14pub struct RelayObject {
15    pub http_address: String,
16}
17
18#[derive(Clone, Default, Serialize, Deserialize, Debug)]
19pub struct VoltConfiguration {
20    pub id: String,
21    pub display_name: String,
22    pub address: String,
23    pub http_address: String,
24    pub public_key: String,
25    pub relay: Option<RelayConfiguration>,
26}