Skip to main content

platz_chart_ext/actions/
mod.rs

1mod v0;
2mod v1beta1;
3
4pub use self::v0::{
5    ChartExtActionEndpoint, ChartExtActionMethod, ChartExtActionTarget,
6    ChartExtActionTargetResolver, ChartExtActionUserDeploymentRole, ChartExtActionV0,
7    ChartExtActionsV0,
8};
9pub use self::v1beta1::{ChartExtActionV1Beta1, ChartExtActionsV1Beta1};
10use serde::{Deserialize, Serialize};
11
12#[derive(Clone, Debug, Deserialize, Serialize)]
13#[cfg_attr(feature = "utoipa", derive(utoipa::ToSchema))]
14#[serde(untagged)]
15pub enum ChartExtActions {
16    V1Beta1(ChartExtActionsV1Beta1),
17    V0(ChartExtActionsV0),
18}
19
20impl ChartExtActions {
21    pub fn find(&self, action_id: &str) -> Option<&v0::ChartExtActionV0> {
22        match self {
23            Self::V1Beta1(v1) => v1.find(action_id),
24            Self::V0(v0) => v0.find(action_id),
25        }
26    }
27
28    pub fn get_actions(&self) -> Vec<ChartExtActionV0> {
29        match self {
30            Self::V1Beta1(v1) => v1.get_actions(),
31            Self::V0(v0) => v0.get_actions(),
32        }
33    }
34}