🆙

Goa v3.12.3 更新情報

2023/07/29に公開

概要

Goa の更新情報メモです。

Goa v3.12.3

v3.12.3 の更新情報です。v3.12.1 から v3.12.2 を飛ばして v3.12.3 です。

主な変更内容

バグ修正が2点です。

Enable custom primitive types to decode by @jerejones in #3317

primitive な型をユーザー定義の型で受け取るための変換に関する修正です。

AccountID = Type("account_id", func() {
	Attribute("account_id", UInt32, func() {
		Meta("struct:field:type", "hide.Uint32", "github.com/c2h5oh/hide")
	})
	Required("account_id")
})

Uint32 なんだけど、自分のプログラムで定義されている型(hide.Uint32)にセットしたい。みたいなときに、メタタグ struct:field:type を利用してパッケージ(上の例では "github.com/c2h5oh/hide")と型(同様に "hide.Uint32")を指定することで直接指定した型を利用したコードが生成される、はずでしたが、バグがあったので修正されたようです。

Fix to handle time.Time slice and other slices as type override by @maxmcd in #3312

こちらも "struct:field:type" がらみのバグ修正。デフォルト値があると、ビルドできないコードが生成されてしまうケースがあったようで、修正されています。

Attribute("exdates", func() {
	Default([]time.Time{})
	Meta("struct:field:type", "[]time.Time", "time")
	Meta("struct:tag:json", "-")
})

こんな感じのことがしたかった模様です。

Happy hacking!

Discussion