lua_protobuf_rs/descriptor_proto/
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::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}