treadmill_rs/
supervisor.rs

1use serde::Deserialize;
2use uuid::Uuid;
3
4#[derive(Deserialize, Debug, Clone)]
5#[serde(rename_all = "snake_case")]
6#[non_exhaustive]
7pub enum SupervisorCoordConnector {
8    RestSSEConnector,
9    WsConnector,
10}
11
12/// Base configuration object for every supervisor.
13///
14/// Supervisors should expose this object under the `base` path in their
15/// configuration. For instance, for a TOML configuration file:
16///
17/// ```toml
18/// [base]
19/// supervisor_id = "e5e7258e-c18b-471d-bc03-8385495b29e4"
20/// coord_connector = "ws_connector"
21///
22/// [ws_connector]
23/// some_option = "foo"
24///
25/// [other_section]
26/// hello = "world"
27/// ```
28#[derive(Deserialize, Debug, Clone)]
29pub struct SupervisorBaseConfig {
30    pub coord_connector: SupervisorCoordConnector,
31    pub supervisor_id: Uuid,
32}