cog_task/action/core/
horizontal.rs1use crate::action::core::stack::{Direction, Stack};
2use crate::action::{Action, StatefulAction};
3use crate::comm::QWriter;
4use crate::resource::{IoManager, ResourceManager};
5use crate::server::{AsyncSignal, Config, SyncSignal};
6use eyre::{eyre, Result};
7use serde::{Deserialize, Serialize};
8
9#[derive(Debug, Deserialize, Serialize)]
10pub struct Horizontal(Vec<Box<dyn Action>>, #[serde(default)] Vec<f32>);
11
12impl Action for Horizontal {
13 fn init(self) -> Result<Box<dyn Action>>
14 where
15 Self: 'static + Sized,
16 {
17 Stack::new(self.0, Direction::Horizontal, self.1).init()
18 }
19
20 fn stateful(
21 &self,
22 _io: &IoManager,
23 _res: &ResourceManager,
24 _config: &Config,
25 _sync_writer: &QWriter<SyncSignal>,
26 _async_writer: &QWriter<AsyncSignal>,
27 ) -> Result<Box<dyn StatefulAction>> {
28 Err(eyre!("Vertical can not be stateful."))
29 }
30}