gesha_rust_types/
definition.rs1use crate::{DataType, EnumDef, ModDef, NewTypeDef, PresetDef, RequestBodyDef, StructDef};
2
3#[derive(Clone, Debug, PartialEq)]
4pub enum Definition {
5 StructDef(StructDef),
6 NewTypeDef(NewTypeDef),
7 EnumDef(Box<EnumDef>),
8 PresetDef(PresetDef),
9 RequestBodyDef(RequestBodyDef),
10 ModDef(ModDef),
11}
12
13impl Definition {
14 pub fn any_type<F>(&self, f: F) -> bool
15 where
16 F: Fn(&DataType) -> bool,
17 {
18 match self {
19 Definition::StructDef(x) => x.fields.iter().any(|x| f(&x.data_type)),
20 Definition::NewTypeDef(x) => f(&x.data_type),
21 Definition::EnumDef(_) => false,
22 Definition::PresetDef(_) => false,
23 Definition::RequestBodyDef(_) => false,
24 Definition::ModDef(_) => false,
25 }
26 }
27
28 pub fn symbol_name(&self) -> &str {
34 match self {
35 Definition::StructDef(x) => x.symbol_name(),
36 Definition::NewTypeDef(x) => x.symbol_name(),
37 Definition::EnumDef(x) => x.symbol_name(),
38 Definition::PresetDef(x) => x.symbol_name(),
39 Definition::RequestBodyDef(x) => x.symbol_name(),
40 Definition::ModDef(x) => x.symbol_name(),
41 }
42 }
43}