Skip to main content

cc_lb_plugin_wire/v1/
observe.rs

1extern crate alloc;
2
3use alloc::vec::Vec;
4use serde::{Deserialize, Serialize};
5
6use crate::v1::common::ObserveEventWire;
7use crate::wire_function::{FallbackPolicy, WireFunction};
8
9#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
10#[serde(deny_unknown_fields)]
11pub struct ObserveRequest {
12    pub events: Vec<ObserveEventWire>,
13}
14
15impl ObserveRequest {
16    pub fn dry_run_sample() -> Self {
17        Self { events: Vec::new() }
18    }
19}
20
21#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
22#[serde(deny_unknown_fields)]
23pub struct ObserveResponse {}
24
25impl ObserveResponse {
26    pub fn dry_run_sample() -> Self {
27        Self {}
28    }
29}
30
31pub struct ObserveFn;
32
33impl WireFunction for ObserveFn {
34    const NAME: &'static str = "observe";
35    const FALLBACK: FallbackPolicy = FallbackPolicy::SilentSkip;
36    const SUPPORTED_VERSIONS: &'static [u32] = &[1];
37
38    type Request = ObserveRequest;
39    type Response = ObserveResponse;
40
41    fn dry_run_request() -> Self::Request {
42        ObserveRequest::dry_run_sample()
43    }
44
45    fn dry_run_response() -> Self::Response {
46        ObserveResponse::dry_run_sample()
47    }
48}