lua_protobuf_rs/descriptor_proto/
enum_value_options.rs

1use crate::descriptor_proto::uninterpreted_option::LuaUninterpretedOption;
2use crate::{add_message_dyn_trait_method, add_message_full_trait_method, add_message_trait_method};
3use derive_more::{Deref, DerefMut, From, Into};
4use mlua::prelude::LuaUserData;
5use mlua::{MetaMethod, UserDataFields, UserDataMethods};
6use protobuf::descriptor::EnumValueOptions;
7
8#[derive(PartialEq, Clone, Default, Debug, Deref, DerefMut, From, Into)]
9pub struct LuaEnumValueOptions(pub EnumValueOptions);
10
11impl LuaUserData for LuaEnumValueOptions {
12    fn add_fields<F: UserDataFields<Self>>(fields: &mut F) {
13        fields.add_field_method_get("deprecated", |_, this| {
14            Ok(this.deprecated)
15        });
16
17        fields.add_field_method_get("uninterpreted_option", |_, this| {
18            let uninterpreted_option = this.uninterpreted_option.iter().map(Clone::clone).map(Into::into).collect::<Vec<LuaUninterpretedOption>>();
19            Ok(uninterpreted_option)
20        });
21    }
22
23    fn add_methods<M: UserDataMethods<Self>>(methods: &mut M) {
24        methods.add_meta_method(MetaMethod::ToString, |_, this, ()| {
25            Ok(this.to_string())
26        });
27
28        methods.add_method("deprecated", |_, this, ()| {
29            Ok(this.deprecated())
30        });
31        
32        methods.add_method_mut("clear_deprecated", |_, this, ()| {
33            this.clear_deprecated();
34            Ok(())
35        });
36        
37        methods.add_method("has_deprecated", |_, this, ()| {
38            Ok(this.has_deprecated())
39        });
40        
41        methods.add_method_mut("set_deprecated", |_, this, v: bool| {
42            this.set_deprecated(v);
43            Ok(())
44        });
45
46        add_message_trait_method!(methods, EnumValueOptions, LuaEnumValueOptions);
47
48        add_message_dyn_trait_method!(methods, EnumValueOptions, LuaEnumValueOptions);
49
50        add_message_full_trait_method!(methods, EnumValueOptions, LuaEnumValueOptions);
51    }
52}