Skip to main content

actrpc_core/action/
action_descriptor.rs

1use crate::{
2    action::ActionKind,
3    descriptor::{
4        Accepts,
5        types::{OkDescriptor, ParamsDescriptor},
6    },
7};
8use serde::{Deserialize, Serialize};
9
10#[derive(Debug, Clone, Serialize, Deserialize, Eq, PartialEq)]
11pub struct ActionDescriptor {
12    pub kind: ActionKind,
13    pub params: Option<ParamsDescriptor>,
14    pub ok: Option<OkDescriptor>,
15}
16
17impl Accepts for ActionDescriptor {
18    fn accepts(&self, actual: &Self) -> bool {
19        self.kind == actual.kind
20            && self.params.accepts(&actual.params)
21            && self.ok.accepts(&actual.ok)
22    }
23}