Skip to content

디자인 아이디어 디스커션 #1

@kkweon

Description

@kkweon

Objective

{
    "name": "Mo Kweon",
    "some_objects": [ { "key": 123 }, { "key": 1234 } ]
}

to

message Root {
  string name = 1;
  repeated SomeObject some_objects = 2;
}

message SomeObject {
  int64 key = 1;
}

Details

Proto Message 는 다음과 같이 나타내어 질 수 있음

message {{ name }} {
  [repeated] {{ fieldType }} {{ fieldName }} = {{ fieldTag }}
}

fieldType 은 Message 형 혹은 Primitive형으로 구분됨 (이 프로젝트에서 enum과 oneof 및 기타 complex type은 제외. JSON에서 추론 불가능함.)

syntax = "proto3";

message ProtoMessage {
  string name = 1;
  repeated ProtoField fields = 2;
}

message ProtoField {
  ProtoType type = 1;
  string name = 2;
  int64 tag = 3;
  bool repeated = 4;
}

message ProtoType {
  oneof type {
    ProtoMessage proto_message = 1;
    ProtoField proto_field = 2;
  }
}

음 될까요??

parseJSONToProtoMessage:: string -> ProtoMessage
generateProtoDefinition:: ProtoMessage -> string

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions