lua_protobuf_rs/descriptor_proto/
enum_value_options.rs

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