@@ -184,7 +184,7 @@ func (vc) convertAPEXToSeconds(ctx valueConverterContext, v any) any {
184184}
185185
186186func (c vc ) convertBytesToStringDelimBy (ctx valueConverterContext , v any , delim string ) any {
187- bb , ok := typeAssert [[] byte ](ctx , v )
187+ bb , ok := typeAssertSlice [ byte ](ctx , v )
188188 if ! ok {
189189 return ""
190190 }
@@ -213,7 +213,7 @@ func (c vc) convertDegreesToDecimal(ctx valueConverterContext, v any) any {
213213}
214214
215215func (vc ) convertNumbersToSpaceLimited (ctx valueConverterContext , v any ) any {
216- nums , ok := typeAssert [[] any ](ctx , v )
216+ nums , ok := typeAssertSlice [ any ](ctx , v )
217217 if ! ok {
218218 return ""
219219 }
@@ -348,7 +348,7 @@ func (c vc) convertToTimestampString(ctx valueConverterContext, v any) any {
348348}
349349
350350func (vc ) parseDegrees (s string ) (float64 , error ) {
351- if s == "" {
351+ if s == "" || s == "0100" {
352352 return 0 , nil
353353 }
354354 var deg , min , sec float64
@@ -453,6 +453,22 @@ func printStackTrace(w io.Writer) {
453453 fmt .Fprintf (w , "%s" , buf )
454454}
455455
456+ func typeAssertSlice [T any ](ctx valueConverterContext , v any ) ([]T , bool ) {
457+ vv , ok := v .([]T )
458+ if ok {
459+ return vv , true
460+ }
461+
462+ vvv , ok := v .(T )
463+ if ok {
464+ return []T {vvv }, true
465+ }
466+
467+ ctx .warnf ("expected %T or %T, got %T" , vv , vvv , v )
468+
469+ return vv , false
470+ }
471+
456472func typeAssert [T any ](ctx valueConverterContext , v any ) (T , bool ) {
457473 vv , ok := v .(T )
458474 if ! ok {
0 commit comments