lua_protobuf_rs/descriptor/
method_descriptor.rs

1use crate::descriptor::message_descriptor::LuaMessageDescriptor;
2use crate::descriptor_proto::method_descriptor_proto::LuaMethodDescriptorProto;
3use derive_more::{ Deref, From, Into};
4use mlua::prelude::LuaUserData;
5use mlua::UserDataMethods;
6use protobuf::reflect::MethodDescriptor;
7
8#[derive( Deref, From, Into)]
9pub struct LuaMethodDescriptor(pub MethodDescriptor);
10
11impl LuaUserData for LuaMethodDescriptor {
12    fn add_methods<M: UserDataMethods<Self>>(methods: &mut M) {
13        methods.add_method("proto", |_, this, ()| {
14            let proto: LuaMethodDescriptorProto = this.proto().clone().into();
15            Ok(proto)
16        });
17        
18        methods.add_method("input_type", |_, this, ()| {
19            let descriptor: LuaMessageDescriptor = this.input_type().into();
20            Ok(descriptor)
21        });
22        
23        methods.add_method("input_type", |_, this, ()| {
24            let descriptor: LuaMessageDescriptor = this.output_type().into();
25            Ok(descriptor)
26        });
27    }
28}