edge_schema/schema/
web_gateway.rs

1use serde::{Deserialize, Serialize};
2
3use super::Merge;
4
5#[derive(Serialize, Deserialize, PartialEq, Eq, Clone, Debug, schemars::JsonSchema)]
6pub struct CapabilityWebGatewayV1 {
7    /// Expose error pages with detailed error information if request handling
8    /// fails.
9    #[serde(skip_serializing_if = "Option::is_none")]
10    pub expose_detailed_errors: Option<bool>,
11
12    /// Maximum number of concurrent requests allowed per instance.
13    pub instance_concurrent_requests: Option<u64>,
14
15    /// Maximum number of instances that can be spawned on each Edge node
16    /// (aka server).
17    pub maximum_instances_per_node: Option<u64>,
18}
19
20impl Merge for CapabilityWebGatewayV1 {
21    fn merge_extend(self, other: &Self) -> Self {
22        Self {
23            expose_detailed_errors: self
24                .expose_detailed_errors
25                .merge_extend(&other.expose_detailed_errors),
26            instance_concurrent_requests: self
27                .instance_concurrent_requests
28                .merge_extend(&other.instance_concurrent_requests),
29            maximum_instances_per_node: self
30                .maximum_instances_per_node
31                .merge_extend(&other.maximum_instances_per_node),
32        }
33    }
34}