cal_core/device/
zone_router.rs

1use std::fmt::{Debug, Formatter};
2use serde::{Serialize, Deserialize};
3use crate::device::device::Connector;
4use crate::{ConnectState, FlowState};
5use crate::router_option::RouterOption;
6
7#[derive(Serialize, Deserialize, Clone)]
8#[serde(rename_all = "camelCase")]
9pub struct ZoneRouter {
10    #[serde(default)]
11    pub options: Vec<RouterOption>,
12    #[serde(default = "crate::device::shared::build_connect_to")]
13    pub connect_to: String,
14}
15
16impl Connector for ZoneRouter {
17    fn get_connect_to(&mut self, _state: &mut FlowState) -> ConnectState {
18        // Implementation would depend on how zone routing works
19        // This is a placeholder based on the structure in the original code
20        ConnectState::default(&self.connect_to, None)
21    }
22}
23
24impl Debug for ZoneRouter {
25    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
26        f.debug_struct("ZoneRouter")
27            .field("options", &self.options)
28            .field("connect_to", &self.connect_to)
29            .finish()
30    }
31}