1// Copyright 2019 The Go Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style 3// license that can be found in the LICENSE file. 4 5package a 6 7import ( 8 "errors" 9 "strings" 10) 11 12var G interface{} 13 14func Unmarshal(data []byte, o interface{}) error { 15 G = o 16 v, ok := o.(*map[string]interface{}) 17 if !ok { 18 return errors.New("eek") 19 } 20 vals := make(map[string]interface{}) 21 s := string(data) 22 items := strings.Split(s, " ") 23 var err error 24 for _, item := range items { 25 vals[item] = s 26 if item == "error" { 27 err = errors.New("ouch") 28 } 29 } 30 *v = vals 31 return err 32} 33