| 774 | } |
| 775 | |
| 776 | func (p ptrMapper) Decode(ctx *DecodeContext, target reflect.Value) error { |
| 777 | elem := reflect.New(target.Type().Elem()).Elem() |
| 778 | nestedMapper := p.r.ForValue(elem) |
| 779 | if nestedMapper == nil { |
| 780 | return fmt.Errorf("cannot find mapper for %v", target.Type().Elem().String()) |
| 781 | } |
| 782 | err := nestedMapper.Decode(ctx, elem) |
| 783 | if err != nil { |
| 784 | return err |
| 785 | } |
| 786 | target.Set(elem.Addr()) |
| 787 | return nil |
| 788 | } |
| 789 | |
| 790 | func counterMapper() MapperFunc { |
| 791 | return func(ctx *DecodeContext, target reflect.Value) error { |