MCPcopy Create free account
hub / github.com/uptrace/bun / arrayElemAppender

Method arrayElemAppender

dialect/pgdialect/array.go:141–160  ·  view source on GitHub ↗
(typ reflect.Type)

Source from the content-addressed store, hash-verified

139}
140
141func (d *Dialect) arrayElemAppender(typ reflect.Type) schema.AppenderFunc {
142 if typ.Implements(driverValuerType) {
143 return arrayAppendDriverValue
144 }
145 if typ == timeType {
146 return appendTimeElemValue
147 }
148
149 switch typ.Kind() {
150 case reflect.String:
151 return appendStringElemValue
152 case reflect.Slice:
153 if typ.Elem().Kind() == reflect.Uint8 {
154 return appendBytesElemValue
155 }
156 case reflect.Ptr:
157 return schema.PtrAppender(d.arrayElemAppender(typ.Elem()))
158 }
159 return schema.Appender(d, typ)
160}
161
162func appendTimeElemValue(gen schema.QueryGen, b []byte, v reflect.Value) []byte {
163 ts := v.Convert(timeType).Interface().(time.Time)

Callers 1

arrayAppenderMethod · 0.95

Calls 3

PtrAppenderFunction · 0.92
AppenderFunction · 0.92
ElemMethod · 0.80

Tested by

no test coverage detected