edge-schema 0.1.0

Shared schema types for Wasmer Edge.
Documentation
use serde::{Deserialize, Serialize};

use super::Merge;

#[derive(Serialize, Deserialize, PartialEq, Eq, Clone, Debug, schemars::JsonSchema)]
pub struct CapabilityWebGatewayV1 {
    /// Expose error pages with detailed error information if request handling
    /// fails.
    #[serde(skip_serializing_if = "Option::is_none")]
    pub expose_detailed_errors: Option<bool>,

    /// Maximum number of concurrent requests allowed per instance.
    pub instance_concurrent_requests: Option<u64>,

    /// Maximum number of instances that can be spawned on each Edge node
    /// (aka server).
    pub maximum_instances_per_node: Option<u64>,
}

impl Merge for CapabilityWebGatewayV1 {
    fn merge_extend(self, other: &Self) -> Self {
        Self {
            expose_detailed_errors: self
                .expose_detailed_errors
                .merge_extend(&other.expose_detailed_errors),
            instance_concurrent_requests: self
                .instance_concurrent_requests
                .merge_extend(&other.instance_concurrent_requests),
            maximum_instances_per_node: self
                .maximum_instances_per_node
                .merge_extend(&other.maximum_instances_per_node),
        }
    }
}