Example output (for more examples see the test output):
tarantool> f = c:eval('return 123', {}, {is_async = true})
---
...
tarantool> tostring(f)
---
- 'net.box.request: 7'
...
I think sync has no sense here. It's useless without other info (peer, function).
Also, it complicates the tests and makes them less reliable.
IMHO simple 'net.box.request' is enough.
tarantool> f
---
- method: eval
on_push_ctx: []
result: [123]
on_push: 'function: builtin#91'
sync: 7
...
This is also weird:
tarantool> f
---
- on_push_ctx: []
method: call
sync: 4
on_push: 'function: builtin#91'
...
tarantool> f.sync
---
- null
...
tarantool> f.method
---
- null
...
Why displaying inaccessible fields? You leave a developer no choice:
tarantool> debug.getmetatable(f).__serialize(f).method
---
- call
...
Of course, I miss that fields, but please, there should be another way to access them.
which of them are you going to merge first? Whichever it is, I guess the second one is destined to be refactored afterward.
Closes #6314
---
https://github.com/tarantool/tarantool/issues/6314
https://github.com/tarantool/tarantool/tree/vdavydov/netbox-future-serialize