wire/answer/
automation.rs1use kernel::Address;
10use serde::{Deserialize, Serialize};
11
12#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)]
16#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
17pub struct AutomationAnswer {
18 pub jobs: Vec<ScheduledJob>,
19 pub sources: Vec<WatchedSource>,
20 pub unreadable: Vec<String>,
23}
24
25#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
27#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
28pub struct ScheduledJob {
29 pub name: String,
30 pub addr: Address,
31 pub task: String,
32 pub goal: String,
33 pub cadence: Cadence,
34}
35
36#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
38#[serde(rename_all = "snake_case")]
39#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
40pub enum Cadence {
41 EveryMinutes {
42 minutes: u64,
43 },
44 DailyAt {
46 minute: u64,
47 },
48 WeeklyAt {
50 minute: u64,
51 },
52}
53
54#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
56#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
57pub struct WatchedSource {
58 pub name: String,
59 pub matches: String,
61 pub addr: Address,
62 pub starts_work: bool,
64}