evans: Can't partly omit nested messages using --dig-manually
Describe the bug
There’s no way to partly omit nested messages in repl mode. --dig-manually
allows to omit only the currently selected field and then skips the filling of the rest of the fields. There needs to be a way to skip a field and move to the next one.
To reproduce
syntax = "proto3";
package mypackage;
service MyService{
rpc UpdateGroup (UpdateGroupRequest) returns (UpdateGroupResponse);
}
message UpdateGroupRequest{
int64 group_id = 1;
OrganizationsValue organizations = 2;
PointsValue points = 3;
message OrganizationsValue{
repeated int64 organization_ids = 1;
}
message PointsValue{
repeated int64 point_ids = 1;
}
}
message UpdateGroupResponse{
}
Then try skipping organizations field completely(make it nil), but enter points.
Expected behavior
There is way to omit field organizations, but fill points so the request will look like this:
{"group_id": 20, "points": {"point_ids": [1, 2, 3, 4, 5]}}
Environment
- OS: macOS 11.6.4
- Terminal: zsh
- Evans version: 0.10.6
protoc
version: -protoc
plugin version (if you are using): -
Additional context
The one way to solve this issue is to add a new option to --dig-manually
mode that will allow to skip a field without skipping the rest of them. The name can be skip once
for example.
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 16 (16 by maintainers)
Commits related to this issue
- fix --dig-manually skip (#554) — committed to relipocere/evans by relipocere 2 years ago
- fix --dig-manually skip (#554) (#568) — committed to ktr0731/evans by relipocere 2 years ago
Also completely unrelated, but when you’re building the binary you can pass
-ldflags="-w"
togo build
. It will make it “undebugable” with GBD, but the size of the binary becomes noticeably smaller (it went down from 22.4MB to 17.4MB when I tried it).