lua_protobuf_rs/descriptor_proto/
extension_range.rs1use crate::descriptor_proto::extension_options::LuaExtensionRangeOptions;
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::descriptor_proto::ExtensionRange;
9
10#[derive(PartialEq, Clone, Default, Debug, Deref, DerefMut, From, Into)]
11pub struct LuaExtensionRange(pub ExtensionRange);
12
13impl LuaUserData for LuaExtensionRange {
14 fn add_fields<F: UserDataFields<Self>>(fields: &mut F) {
15 fields.add_field_method_get("start", |_, this| Ok(this.start));
16 fields.add_field_method_get("end", |_, this| Ok(this.end));
17 fields.add_field_method_get("options", |_, this| {
18 Ok::<Option<LuaExtensionRangeOptions>, _>(
19 this.options.clone().into_option().map(Into::into),
20 )
21 });
22 }
23
24 fn add_methods<M: UserDataMethods<Self>>(methods: &mut M) {
25 methods.add_meta_method(MetaMethod::ToString, |_, this, ()| Ok(this.to_string()));
26
27 methods.add_method("start", |_, this, ()| Ok(this.start()));
28
29 methods.add_method("has_start", |_, this, ()| Ok(this.has_start()));
30
31 methods.add_method_mut("clear_start", |_, this, ()| {
32 this.clear_start();
33 Ok(())
34 });
35
36 methods.add_method_mut("set_start", |_, this, value: i32| {
37 this.set_start(value);
38 Ok(())
39 });
40
41 methods.add_method("end", |_, this, ()| Ok(this.end()));
42
43 methods.add_method("has_end", |_, this, ()| Ok(this.has_end()));
44
45 methods.add_method_mut("clear_end", |_, this, ()| {
46 this.clear_end();
47 Ok(())
48 });
49
50 methods.add_method_mut("set_end", |_, this, value: i32| {
51 this.set_end(value);
52 Ok(())
53 });
54
55 add_message_trait_method!(methods, ExtensionRange, LuaExtensionRange);
56
57 add_message_dyn_trait_method!(methods, ExtensionRange, LuaExtensionRange);
58
59 add_message_full_trait_method!(methods, ExtensionRange, LuaExtensionRange);
60 }
61}