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

Most upvoted comments

Also completely unrelated, but when you’re building the binary you can pass -ldflags="-w" to go 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).