diff options
author | Yuxuan 'fishy' Wang <yuxuan.wang@reddit.com> | 2022-10-21 10:27:40 -0700 |
---|---|---|
committer | Yuxuan 'fishy' Wang <fishywang@gmail.com> | 2022-10-26 14:40:10 -0700 |
commit | 2acfe0fc7a1747c327da66c8a693840ba0c5a016 (patch) | |
tree | f07b250964c0295a9d9908bb20e8e2028c9fed1f /lib | |
parent | cea5559ecf458ccbb251594dba571f01bf0a2402 (diff) | |
download | thrift-2acfe0fc7a1747c327da66c8a693840ba0c5a016.tar.gz |
THRIFT-5650: Implement UUID in Go compiler
Client: go
Diffstat (limited to 'lib')
-rw-r--r-- | lib/go/test/EqualsTest.thrift | 17 | ||||
-rw-r--r-- | lib/go/test/tests/equals_test.go | 37 | ||||
-rw-r--r-- | lib/go/thrift/json_protocol.go | 4 |
3 files changed, 51 insertions, 7 deletions
diff --git a/lib/go/test/EqualsTest.thrift b/lib/go/test/EqualsTest.thrift index 57ce131ec..1732f31d3 100644 --- a/lib/go/test/EqualsTest.thrift +++ b/lib/go/test/EqualsTest.thrift @@ -20,6 +20,7 @@ typedef i8 mybyte typedef string mystr typedef binary mybin +typedef uuid myuuid enum EnumFoo { e1 @@ -51,6 +52,10 @@ struct BasicEqualsFoo { 22: optional mystr OptMyStrFoo, 23: mybin MyBinFoo, 24: optional mybin OptMyBinFoo, + 25: uuid UUIDFoo, + 26: optional uuid OptUUIDFoo, + 27: myuuid MyUUIDFoo, + 28: optional myuuid OptMyUUIDFoo, } struct StructEqualsFoo { @@ -79,6 +84,10 @@ struct ListEqualsFoo { 18: optional list<mystr> OptMyStrListFoo, 19: list<mybin> MyBinListFoo, 20: optional list<mybin> OptMyBinListFoo, + 21: list<uuid> UUIDListFoo, + 22: optional list<uuid> OptUUIDListFoo, + 23: list<myuuid> MyUUIDListFoo, + 24: optional list<myuuid> OptMyUUIDListFoo, } struct SetEqualsFoo { @@ -102,6 +111,10 @@ struct SetEqualsFoo { 18: optional set<mystr> OptMyStrSetFoo, 19: set<mybin> MyBinSetFoo, 20: optional set<mybin> OptMyBinSetFoo, + 21: set<uuid> UUIDSetFoo, + 22: optional set<uuid> OptUUIDSetFoo, + 23: set<myuuid> MyUUIDSetFoo, + 24: optional set<myuuid> OptMyUUIDSetFoo, } struct MapEqualsFoo { @@ -125,4 +138,8 @@ struct MapEqualsFoo { 18: optional map<i64, mybyte> OptInt64MyByteMapFoo, 19: map<mybyte, i64> MyByteInt64MapFoo, 20: optional map<mybyte, i64> OptMyByteInt64MapFoo, + 21: map<i64, uuid> UUIDMapFoo, + 22: optional map<i64, uuid> OptUUIDMapFoo, + 23: map<i64, myuuid> MyUUIDMapFoo, + 24: optional map<i64, myuuid> OptMyUUIDMapFoo, } diff --git a/lib/go/test/tests/equals_test.go b/lib/go/test/tests/equals_test.go index 3bd14b6df..b8adc7708 100644 --- a/lib/go/test/tests/equals_test.go +++ b/lib/go/test/tests/equals_test.go @@ -23,9 +23,16 @@ import ( "strconv" "testing" + "github.com/apache/thrift/lib/go/thrift" + "github.com/apache/thrift/lib/go/test/gopath/src/equalstest" ) +var ( + equalstestUUID1 = thrift.Must(thrift.ParseTuuid("6ba7b810-9dad-11d1-80b4-00c04fd430c8")) + equalstestUUID2 = thrift.Must(thrift.ParseTuuid("6ba7b811-9dad-11d1-80b4-00c04fd430c8")) +) + func TestEquals(t *testing.T) { // test basic field basicTgt, basicSrc := genBasicFoo(), genBasicFoo() @@ -117,19 +124,19 @@ func TestEquals(t *testing.T) { func genBasicFoo() *equalstest.BasicEqualsFoo { return &equalstest.BasicEqualsFoo{ BoolFoo: true, - OptBoolFoo: &(&struct{ x bool }{true}).x, + OptBoolFoo: thrift.BoolPtr(true), I8Foo: 1, - OptI8Foo: &(&struct{ x int8 }{1}).x, + OptI8Foo: thrift.Int8Ptr(1), I16Foo: 2, - OptI16Foo: &(&struct{ x int16 }{2}).x, + OptI16Foo: thrift.Int16Ptr(2), I32Foo: 3, - OptI32Foo: &(&struct{ x int32 }{3}).x, + OptI32Foo: thrift.Int32Ptr(3), I64Foo: 4, - OptI64Foo: &(&struct{ x int64 }{4}).x, + OptI64Foo: thrift.Int64Ptr(4), DoubleFoo: 5, - OptDoubleFoo: &(&struct{ x float64 }{5}).x, + OptDoubleFoo: thrift.Float64Ptr(6), StrFoo: "6", - OptStrFoo: &(&struct{ x string }{"6"}).x, + OptStrFoo: thrift.StringPtr("6"), BinFoo: []byte("7"), OptBinFoo: []byte("7"), EnumFoo: equalstest.EnumFoo_e1, @@ -140,6 +147,10 @@ func genBasicFoo() *equalstest.BasicEqualsFoo { OptMyStrFoo: equalstest.MystrPtr(equalstest.Mystr("9")), MyBinFoo: equalstest.Mybin("10"), OptMyBinFoo: equalstest.Mybin("10"), + UUIDFoo: equalstestUUID1, + OptUUIDFoo: thrift.TuuidPtr(equalstestUUID1), + MyUUIDFoo: equalstest.Myuuid(equalstestUUID1), + OptMyUUIDFoo: equalstest.MyuuidPtr(equalstest.Myuuid(equalstestUUID1)), } } @@ -172,6 +183,10 @@ func genListFoo() *equalstest.ListEqualsFoo { OptMyStrListFoo: []equalstest.Mystr{equalstest.Mystr("6"), equalstest.Mystr("5"), equalstest.Mystr("4"), equalstest.Mystr("3"), equalstest.Mystr("2"), equalstest.Mystr("1")}, MyBinListFoo: []equalstest.Mybin{equalstest.Mybin("6"), equalstest.Mybin("5"), equalstest.Mybin("4"), equalstest.Mybin("3"), equalstest.Mybin("2"), equalstest.Mybin("1")}, OptMyBinListFoo: []equalstest.Mybin{equalstest.Mybin("6"), equalstest.Mybin("5"), equalstest.Mybin("4"), equalstest.Mybin("3"), equalstest.Mybin("2"), equalstest.Mybin("1")}, + UUIDListFoo: []thrift.Tuuid{equalstestUUID1, equalstestUUID2}, + OptUUIDListFoo: []thrift.Tuuid{equalstestUUID1, equalstestUUID2}, + MyUUIDListFoo: []equalstest.Myuuid{equalstest.Myuuid(equalstestUUID1), equalstest.Myuuid(equalstestUUID2)}, + OptMyUUIDListFoo: []equalstest.Myuuid{equalstest.Myuuid(equalstestUUID1), equalstest.Myuuid(equalstestUUID2)}, } } @@ -197,6 +212,10 @@ func genSetFoo() *equalstest.SetEqualsFoo { OptMyStrSetFoo: []equalstest.Mystr{equalstest.Mystr("6"), equalstest.Mystr("5"), equalstest.Mystr("4"), equalstest.Mystr("3"), equalstest.Mystr("2"), equalstest.Mystr("1")}, MyBinSetFoo: []equalstest.Mybin{equalstest.Mybin("6"), equalstest.Mybin("5"), equalstest.Mybin("4"), equalstest.Mybin("3"), equalstest.Mybin("2"), equalstest.Mybin("1")}, OptMyBinSetFoo: []equalstest.Mybin{equalstest.Mybin("6"), equalstest.Mybin("5"), equalstest.Mybin("4"), equalstest.Mybin("3"), equalstest.Mybin("2"), equalstest.Mybin("1")}, + UUIDSetFoo: []thrift.Tuuid{equalstestUUID1, equalstestUUID2}, + OptUUIDSetFoo: []thrift.Tuuid{equalstestUUID1, equalstestUUID2}, + MyUUIDSetFoo: []equalstest.Myuuid{equalstest.Myuuid(equalstestUUID1), equalstest.Myuuid(equalstestUUID2)}, + OptMyUUIDSetFoo: []equalstest.Myuuid{equalstest.Myuuid(equalstestUUID1), equalstest.Myuuid(equalstestUUID2)}, } } @@ -227,6 +246,10 @@ func genMapFoo() *equalstest.MapEqualsFoo { OptInt64MyByteMapFoo: map[int64]equalstest.Mybyte{6: equalstest.Mybyte(6), 5: equalstest.Mybyte(5), 4: equalstest.Mybyte(4), 3: equalstest.Mybyte(3), 2: equalstest.Mybyte(2), 1: equalstest.Mybyte(1)}, MyByteInt64MapFoo: map[equalstest.Mybyte]int64{equalstest.Mybyte(6): 6, equalstest.Mybyte(5): 5, equalstest.Mybyte(4): 4, equalstest.Mybyte(3): 3, equalstest.Mybyte(2): 2, equalstest.Mybyte(1): 1}, OptMyByteInt64MapFoo: map[equalstest.Mybyte]int64{equalstest.Mybyte(6): 6, equalstest.Mybyte(5): 5, equalstest.Mybyte(4): 4, equalstest.Mybyte(3): 3, equalstest.Mybyte(2): 2, equalstest.Mybyte(1): 1}, + UUIDMapFoo: map[int64]thrift.Tuuid{1: equalstestUUID1, 2: equalstestUUID2}, + OptUUIDMapFoo: map[int64]thrift.Tuuid{1: equalstestUUID1, 2: equalstestUUID2}, + MyUUIDMapFoo: map[int64]equalstest.Myuuid{1: equalstest.Myuuid(equalstestUUID1), 2: equalstest.Myuuid(equalstestUUID2)}, + OptMyUUIDMapFoo: map[int64]equalstest.Myuuid{1: equalstest.Myuuid(equalstestUUID1), 2: equalstest.Myuuid(equalstestUUID2)}, } } diff --git a/lib/go/thrift/json_protocol.go b/lib/go/thrift/json_protocol.go index 8b1bb52f4..6743a7fe3 100644 --- a/lib/go/thrift/json_protocol.go +++ b/lib/go/thrift/json_protocol.go @@ -524,6 +524,8 @@ func (p *TJSONProtocol) TypeIdToString(fieldType TType) (string, error) { return "set", nil case LIST: return "lst", nil + case UUID: + return "uid", nil } e := fmt.Errorf("Unknown fieldType: %d", int(fieldType)) @@ -554,6 +556,8 @@ func (p *TJSONProtocol) StringToTypeId(fieldType string) (TType, error) { return TType(SET), nil case "lst": return TType(LIST), nil + case "uid": + return TType(UUID), nil } e := fmt.Errorf("Unknown type identifier: %s", fieldType) |