Skip to content

Commit cd2f55c

Browse files
committed
feat: support write the types of pointer of simple data types (#2745)
1 parent af4872c commit cd2f55c

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

internal/proto/writer.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,37 +65,68 @@ func (w *Writer) WriteArg(v interface{}) error {
6565
return w.string("")
6666
case string:
6767
return w.string(v)
68+
case *string:
69+
return w.string(*v)
6870
case []byte:
6971
return w.bytes(v)
7072
case int:
7173
return w.int(int64(v))
74+
case *int:
75+
return w.int(int64(*v))
7276
case int8:
7377
return w.int(int64(v))
78+
case *int8:
79+
return w.int(int64(*v))
7480
case int16:
7581
return w.int(int64(v))
82+
case *int16:
83+
return w.int(int64(*v))
7684
case int32:
7785
return w.int(int64(v))
86+
case *int32:
87+
return w.int(int64(*v))
7888
case int64:
7989
return w.int(v)
90+
case *int64:
91+
return w.int(*v)
8092
case uint:
8193
return w.uint(uint64(v))
94+
case *uint:
95+
return w.uint(uint64(*v))
8296
case uint8:
8397
return w.uint(uint64(v))
98+
case *uint8:
99+
return w.uint(uint64(*v))
84100
case uint16:
85101
return w.uint(uint64(v))
102+
case *uint16:
103+
return w.uint(uint64(*v))
86104
case uint32:
87105
return w.uint(uint64(v))
106+
case *uint32:
107+
return w.uint(uint64(*v))
88108
case uint64:
89109
return w.uint(v)
110+
case *uint64:
111+
return w.uint(*v)
90112
case float32:
91113
return w.float(float64(v))
114+
case *float32:
115+
return w.float(float64(*v))
92116
case float64:
93117
return w.float(v)
118+
case *float64:
119+
return w.float(*v)
94120
case bool:
95121
if v {
96122
return w.int(1)
97123
}
98124
return w.int(0)
125+
case *bool:
126+
if *v {
127+
return w.int(1)
128+
}
129+
return w.int(0)
99130
case time.Time:
100131
w.numBuf = v.AppendFormat(w.numBuf[:0], time.RFC3339Nano)
101132
return w.bytes(w.numBuf)

0 commit comments

Comments
 (0)