Пример #1
0
func (d *decoder) decodeSlice(src hl7.Data, dst reflect.Value) {
	dstType := dst.Type()
	dstElemType := dstType.Elem()
	sliceType := reflect.SliceOf(dstElemType)

	srcLen := src.Len()
	dstSlice := reflect.MakeSlice(sliceType, srcLen, srcLen)
	for i := 0; i < srcLen; i++ {
		currentField := dstSlice.Index(i)
		if newSrc, ok := src.Index(i); ok {
			d.decode(newSrc, currentField)
		}
	}

	dst.Set(dstSlice)
}