lua_protobuf_rs/descriptor_proto/
enum_reserved_range.rs

1use crate::{add_message_dyn_trait_method, add_message_full_trait_method, add_message_trait_method};
2use derive_more::{Deref, DerefMut, From, Into};
3use mlua::prelude::LuaUserData;
4use mlua::{MetaMethod, UserDataFields, UserDataMethods};
5use protobuf::descriptor::enum_descriptor_proto::EnumReservedRange;
6
7#[derive(PartialEq, Clone, Default, Debug, Deref, DerefMut, From, Into)]
8pub struct LuaEnumReservedRange(pub EnumReservedRange);
9
10impl LuaUserData for LuaEnumReservedRange {
11    fn add_fields<F: UserDataFields<Self>>(fields: &mut F) {
12        fields.add_field_method_get("start", |_, this| {
13            Ok(this.start)
14        });
15
16        fields.add_field_method_get("end", |_, this| {
17            Ok(this.end)
18        });
19    }
20
21    fn add_methods<M: UserDataMethods<Self>>(methods: &mut M) {
22        methods.add_meta_method(MetaMethod::ToString, |_, this, ()| {
23            Ok(this.to_string())
24        });
25
26        methods.add_method("start", |_, this, ()| {
27            Ok(this.start())
28        });
29
30        methods.add_method_mut("clear_start", |_, this, ()| {
31            this.clear_start();
32            Ok(())
33        });
34
35        methods.add_method("has_start", |_, this, ()| {
36            Ok(this.has_start())
37        });
38
39        methods.add_method_mut("set_start", |_, this, value: i32| {
40            this.set_start(value);
41            Ok(())
42        });
43
44        methods.add_method("end", |_, this, ()| {
45            Ok(this.end())
46        });
47
48        methods.add_method_mut("clear_end", |_, this, ()| {
49            this.clear_end();
50            Ok(())
51        });
52
53        methods.add_method("has_end", |_, this, ()| {
54            Ok(this.has_end())
55        });
56
57        methods.add_method_mut("set_end", |_, this, value: i32| {
58            this.set_end(value);
59            Ok(())
60        });
61
62        add_message_trait_method!(methods, EnumReservedRange, LuaEnumReservedRange);
63
64        add_message_dyn_trait_method!(methods, EnumReservedRange, LuaEnumReservedRange);
65
66        add_message_full_trait_method!(methods, EnumReservedRange, LuaEnumReservedRange);
67    }
68}