Skip to content

Commit 2af188f

Browse files
authored
feat(config): Implement Serialize trait for configuration structs (#314)
This commit adds support for serializing configuration structures by implementing the `Serialize` trait for them. This change is necessary for enabling configuration data to be converted into formats like JSON or TOML, which facilitates easier storage, transmission, or debugging. By leveraging the `Serialize` trait, developers can integrate the configuration with existing systems that require serialized data formats.
1 parent 0437f7b commit 2af188f

File tree

8 files changed

+15
-15
lines changed

8 files changed

+15
-15
lines changed

v4-client-rs/client/src/config.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ use super::faucet::FaucetConfig;
44
use super::noble::NobleConfig;
55
use super::{indexer::IndexerConfig, node::NodeConfig};
66
use anyhow::Error;
7-
use serde::Deserialize;
7+
use serde::{Deserialize, Serialize};
88
use std::path::Path;
99
use tokio::fs;
1010

1111
/// Serves as a configuration wrapper over configurations for specific clients.
12-
#[derive(Debug, Deserialize)]
12+
#[derive(Debug, Deserialize, Serialize)]
1313
pub struct ClientConfig {
1414
/// Configuration for [`IndexerClient`](crate::indexer::IndexerClient)
1515
pub indexer: IndexerConfig,

v4-client-rs/client/src/faucet.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use reqwest::Client;
55
use serde::{Deserialize, Serialize};
66

77
/// Configuration for the Faucet client.
8-
#[derive(Debug, Deserialize)]
8+
#[derive(Debug, Deserialize, Serialize)]
99
pub struct FaucetConfig {
1010
/// The base url of the faucet service.
1111
pub endpoint: String,

v4-client-rs/client/src/indexer/config.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
pub use crate::indexer::{rest::RestConfig, sock::SockConfig};
2-
use serde::Deserialize;
2+
use serde::{Deserialize, Serialize};
33

44
/// Indexer client configuration.
5-
#[derive(Clone, Debug, Deserialize)]
5+
#[derive(Clone, Debug, Deserialize, Serialize)]
66
pub struct IndexerConfig {
77
/// Indexer REST client configuration.
88
#[serde(alias = "http")]

v4-client-rs/client/src/indexer/rest/config.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
use serde::Deserialize;
1+
use serde::{Deserialize, Serialize};
22

33
/// REST Indexer client configuration.
4-
#[derive(Clone, Debug, Deserialize)]
4+
#[derive(Clone, Debug, Deserialize, Serialize)]
55
pub struct RestConfig {
66
/// REST endpoint.
77
///

v4-client-rs/client/src/indexer/sock/config.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
use serde::Deserialize;
1+
use serde::{Deserialize, Serialize};
22
use std::num::NonZeroU32;
33

44
/// Websocket Indexer client configuration.
5-
#[derive(Clone, Debug, Deserialize)]
5+
#[derive(Clone, Debug, Deserialize, Serialize)]
66
pub struct SockConfig {
77
/// Websocket endpoint.
88
///

v4-client-rs/client/src/noble/config.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
use crate::indexer::Denom;
22
use cosmrs::tendermint::chain::Id as ChainId;
3-
use serde::Deserialize;
3+
use serde::{Deserialize, Serialize};
44

55
/// Configuration for [`NobleClient`](crate::noble::NobleClient)
6-
#[derive(Debug, Deserialize)]
6+
#[derive(Debug, Deserialize, Serialize)]
77
pub struct NobleConfig {
88
/// Node endpoint.
99
pub endpoint: String,

v4-client-rs/client/src/node/config.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
use crate::indexer::Denom;
22
use crate::node::ChainId;
3-
use serde::Deserialize;
3+
use serde::{Deserialize, Serialize};
44

55
/// Configuration for [`NodeClient`](crate::node::NodeClient)
6-
#[derive(Clone, Debug, Deserialize)]
6+
#[derive(Clone, Debug, Deserialize, Serialize)]
77
pub struct NodeConfig {
88
/// Node endpoint.
99
///

v4-client-rs/client/src/node/types.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
use cosmrs::tendermint::{chain::Id, error::Error};
2-
use serde::Deserialize;
2+
use serde::{Deserialize, Serialize};
33
use strum::{AsRefStr, Display};
44

55
/// [Chain ID](https://docs.dydx.exchange/infrastructure_providers-network/network_constants#chain-id)
66
/// serves as a unique chain identificator to prevent replay attacks.
77
///
88
/// See also [Cosmos ecosystem](https://cosmos.directory/).
9-
#[derive(Debug, Eq, PartialEq, Clone, Display, AsRefStr, Deserialize)]
9+
#[derive(Debug, Eq, PartialEq, Clone, Display, AsRefStr, Deserialize, Serialize)]
1010
pub enum ChainId {
1111
/// Testnet.
1212
#[strum(serialize = "dydx-testnet-4")]

0 commit comments

Comments
 (0)