(ix any, k string)
| 164 | } |
| 165 | |
| 166 | func get(ix any, k string) any { |
| 167 | switch x := ix.(type) { |
| 168 | case Buf: |
| 169 | if r, ok := x.get(k); ok { |
| 170 | return r |
| 171 | } |
| 172 | case Cur: |
| 173 | return x.get(k) |
| 174 | case map[string]any: |
| 175 | if v, ok := x[k]; ok { |
| 176 | return v |
| 177 | } |
| 178 | case []any: |
| 179 | if i, err := strconv.Atoi(k); err == nil { |
| 180 | if i >= 0 && i < len(x) { |
| 181 | return x[i] |
| 182 | } |
| 183 | } |
| 184 | } |
| 185 | return nil |
| 186 | } |
| 187 | |
| 188 | func (c *Card) dump() CardD { |
| 189 | data := make(map[string]any) |