actrpc_core/action/
action_descriptor.rs1use 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}