Scott Baker | e7144bc | 2019-10-01 14:16:47 -0700 | [diff] [blame] | 1 | package reflect2 |
| 2 | |
| 3 | type safeStructType struct { |
| 4 | safeType |
| 5 | } |
| 6 | |
| 7 | func (type2 *safeStructType) FieldByName(name string) StructField { |
| 8 | field, found := type2.Type.FieldByName(name) |
| 9 | if !found { |
| 10 | panic("field " + name + " not found") |
| 11 | } |
| 12 | return &safeField{StructField: field} |
| 13 | } |
| 14 | |
| 15 | func (type2 *safeStructType) Field(i int) StructField { |
| 16 | return &safeField{StructField: type2.Type.Field(i)} |
| 17 | } |
| 18 | |
| 19 | func (type2 *safeStructType) FieldByIndex(index []int) StructField { |
| 20 | return &safeField{StructField: type2.Type.FieldByIndex(index)} |
| 21 | } |
| 22 | |
| 23 | func (type2 *safeStructType) FieldByNameFunc(match func(string) bool) StructField { |
| 24 | field, found := type2.Type.FieldByNameFunc(match) |
| 25 | if !found { |
| 26 | panic("field match condition not found in " + type2.Type.String()) |
| 27 | } |
| 28 | return &safeField{StructField: field} |
| 29 | } |