vercel_runtime 2.3.1

Vercel Runtime for Rust
Documentation
#![allow(dead_code)]
use crate::ipc::core::RequestContext;
use serde::{Deserialize, Serialize};

#[derive(Serialize, Deserialize, Debug)]
pub struct MetricMessage {
    #[serde(rename = "type")]
    pub message_type: String,
    pub payload: MetricPayload,
}

#[derive(Serialize, Deserialize, Debug)]
pub struct MetricPayload {
    pub context: RequestContext,
    #[serde(rename = "type")]
    pub metric_type: Option<String>,
    #[serde(rename = "payload")]
    pub metric_payload: Option<serde_json::Value>,
}

impl MetricMessage {
    pub fn new(
        invocation_id: String,
        request_id: u64,
        metric_type: Option<String>,
        metric_payload: Option<serde_json::Value>,
    ) -> Self {
        Self {
            message_type: "metric".to_string(),
            payload: MetricPayload {
                context: RequestContext {
                    invocation_id,
                    request_id,
                },
                metric_type,
                metric_payload,
            },
        }
    }
}