oxygengine_input/
component.rs

1use crate::resources::stack::*;
2use core::prefab::{Prefab, PrefabComponent};
3use serde::{Deserialize, Serialize};
4
5#[derive(Debug, Clone, Serialize, Deserialize)]
6pub enum InputStackInstance {
7    Setup(InputStackListener),
8    #[serde(skip)]
9    Listener(InputStackListenerId),
10}
11
12impl Default for InputStackInstance {
13    fn default() -> Self {
14        Self::Setup(Default::default())
15    }
16}
17
18impl InputStackInstance {
19    pub fn as_listener(&self) -> Option<InputStackListenerId> {
20        match self {
21            Self::Listener(id) => Some(*id),
22            _ => None,
23        }
24    }
25}
26
27impl Prefab for InputStackInstance {}
28impl PrefabComponent for InputStackInstance {}