Skip to content

go-generalize/datastore-repo

Repository files navigation

datastore-repo

Cloud Datastoreで利用されるコードを自動生成する

Installation

$ go get github.com/go-generalize/datastore-repo

Usage

package task

import (
	"time"
)

//go:generate datastore-repo Task

type Task struct {
	ID      int64          `datastore:"-" datastore_key:""` // supported type: string, int64, *datastore.Key
	Desc    string         `datastore:"description"`
	Done    bool           `datastore:"done"`
	Created time.Time      `datastore:"created"`
}

//go:generate から始まる行を書くことでdatastore向けのclientを自動生成するようになる。

また、structの中で一つの要素は必ずdatastore_key:""を持った要素が必要となっている。
この要素の型は int64string*datastore.Key のいずれかである必要がある。

*datastore.Keyをkeyとした場合、Put時にkeyを nil としている場合は自動でkeyの割り当てが行われる。
int64及び string の場合は自動生成されないため明示的に設定する必要がある。

この状態でgo generate を実行すると_gen.goで終わるファイルにクライアントが生成される。

DataStore Tag Linter

Installation

$ go get github.com/go-generalize/datastore-repo/tools/datastore_tag_linter/cmd/dstags

README

License

  • Under the MIT License
  • Copyright (C) 2020 go-generalize

Releases

No releases published

Packages

No packages published

Languages