OLD | NEW |
(Empty) | |
| 1 proto-gae |
| 2 ========= |
| 3 |
| 4 proto-gae is a simple `go generate`-compatible tool for generating |
| 5 "github.com/luci/gae/service/datastore".PropertyConverter implementation for |
| 6 `protoc`-generated message types. This allows you to embed `proto.Message` |
| 7 implementations into your datastore models. |
| 8 |
| 9 The generated implementations serialize to/from the binary protobuf format into |
| 10 an unindexed []byte property. |
| 11 |
| 12 |
| 13 Example |
| 14 ------- |
| 15 |
| 16 #### path/to/mything/protos/mything.proto |
| 17 ```protobuf |
| 18 syntax = "proto3"; |
| 19 package protos; |
| 20 message MyProtoThing { |
| 21 my string = 1; |
| 22 proto int64 = 1; |
| 23 thing float = 1; |
| 24 } |
| 25 ``` |
| 26 |
| 27 #### path/to/mything/protos/gen.go |
| 28 ```go |
| 29 package protos |
| 30 // assume github.com/luci/luci-go/tools/cmd/cproto is in $PATH. Try it, it's |
| 31 // awesome :). |
| 32 |
| 33 //go:generate cproto |
| 34 //go:generate proto-gae -type MyProtoThing |
| 35 ``` |
| 36 |
| 37 #### path/to/mything/thing.go |
| 38 ```go |
| 39 package mything |
| 40 |
| 41 import "path/to/package/protos" |
| 42 |
| 43 type DatastoreModel struct { |
| 44 // This will now 'just work'; ProtoMessage will round-trip to datastore as |
| 45 // []byte. |
| 46 ProtoMessage protos.MyProtoThing |
| 47 } |
| 48 ``` |
OLD | NEW |