1use serde::{Deserialize, Serialize};
2
3pub const DEFAULT_GRPC_MESSAGE_SIZE: usize = 64 * 1024 * 1024; #[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
6#[serde(rename_all = "kebab-case")]
7pub struct GrpcConfig {
8 #[serde(
9 skip_serializing_if = "same_as_default_max_decoding_message_size",
10 default = "default_max_decoding_message_size"
11 )]
12 pub max_decoding_message_size: usize,
13 #[serde(
14 skip_serializing_if = "same_as_default_max_encoding_message_size",
15 default = "default_max_encoding_message_size"
16 )]
17 pub max_encoding_message_size: usize,
18}
19
20impl Default for GrpcConfig {
21 fn default() -> Self {
22 Self {
23 max_decoding_message_size: default_max_decoding_message_size(),
24 max_encoding_message_size: default_max_encoding_message_size(),
25 }
26 }
27}
28
29const fn default_max_decoding_message_size() -> usize {
30 DEFAULT_GRPC_MESSAGE_SIZE
31}
32fn same_as_default_max_decoding_message_size(value: &usize) -> bool {
33 *value == default_max_decoding_message_size()
34}
35const fn default_max_encoding_message_size() -> usize {
36 DEFAULT_GRPC_MESSAGE_SIZE
37}
38fn same_as_default_max_encoding_message_size(value: &usize) -> bool {
39 *value == default_max_encoding_message_size()
40}