lua_protobuf_rs/descriptor_proto/
reserved_range.rs

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