lua_protobuf_rs/descriptor_proto/
reserved_range.rs1use 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::descriptor_proto::ReservedRange;
6
7#[derive(PartialEq, Clone, Default, Debug, Deref, DerefMut, From, Into)]
8pub struct LuaReservedRange(pub ReservedRange);
9
10impl LuaUserData for LuaReservedRange {
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_function("new", |_, ()| {
27 Ok(LuaReservedRange::from(ReservedRange::new()))
28 });
29
30 methods.add_method("start", |_, this, ()| {
31 Ok(this.start())
32 });
33
34 methods.add_method_mut("clear_start", |_, this, ()| {
35 Ok(this.clear_start())
36 });
37
38 methods.add_method("has_start", |_, this, ()| {
39 Ok(this.has_start())
40 });
41
42 methods.add_method_mut("set_start", |_, this, v: i32| {
43 Ok(this.set_start(v))
44 });
45
46 methods.add_method("end", |_, this, ()| {
47 Ok(this.end())
48 });
49
50 methods.add_method_mut("clear_end", |_, this, ()| {
51 Ok(this.clear_end())
52 });
53
54 methods.add_method_mut("has_end", |_, this, ()| {
55 Ok(this.has_end())
56 });
57
58 methods.add_method_mut("set_end", |_, this, v: i32| {
59 Ok(this.set_end(v))
60 });
61
62 add_message_trait_method!(methods, ReservedRange, LuaReservedRange);
63
64 add_message_dyn_trait_method!(methods, ReservedRange, LuaReservedRange);
65
66 add_message_full_trait_method!(methods, ReservedRange, LuaReservedRange);
67 }
68}