I'm not sure, but would it be a good idea to have it so including Serializable also overwrites inspect(io : IO) to include the properties?
The upside, is as a client instead of getting something like this
server
record Details, name : String, count : Int32 do
include MessagePack::Serializable
end
def add_thing(id : String, details : Details) : Nil
end
client
c.add_thing "hi", {name: "will"}
Traceback (most recent call last):
6: from ./repl:32:in `<main>'
5: from (irb):2
4: from (irb):2:in `rescue in irb_binding'
3: from ./repl:12:in `method_missing'
2: from /Users/will/.asdf/installs/ruby/2.6.6/lib/ruby/gems/2.6.0/gems/msgpack-rpc-0.6.0/lib/msgpack/rpc/session.rb:54:in `call'
1: from /Users/will/.asdf/installs/ruby/2.6.6/lib/ruby/gems/2.6.0/gems/msgpack-rpc-0.6.0/lib/msgpack/rpc/future.rb:54:in `get'
MessagePack::RPC::RuntimeError (bad arguments, expected [id : String, details : Details], but got details: HashT[1])
the error could maybe be nicer to better see what you were missing
MessagePack::RPC::RuntimeError (bad arguments, expected [id : String, details : Details[name : String, count : Int32], but got details: HashT[1])
There might be downsides though, but I'm not aware of what they would be, so I wanted to check first if this would be good.
I tried doing a PR to show this, but I can't figure out the macros :( in the macro included section, @type.instance_variables seems to be empty, and I don’t have a ton of experience with macros
I'm not sure, but would it be a good idea to have it so including Serializable also overwrites
inspect(io : IO)to include the properties?The upside, is as a client instead of getting something like this
server
client
the error could maybe be nicer to better see what you were missing
There might be downsides though, but I'm not aware of what they would be, so I wanted to check first if this would be good.
I tried doing a PR to show this, but I can't figure out the macros :( in the
macro includedsection,@type.instance_variablesseems to be empty, and I don’t have a ton of experience with macros