PointerValue returns a pointer to the given value if it is not already a pointer.
(v reflect.Value)
| 30 | // PointerValue returns a pointer to the given value if it is not already |
| 31 | // a pointer. |
| 32 | func PointerValue(v reflect.Value) reflect.Value { |
| 33 | if v.Kind() == reflect.Pointer { |
| 34 | return v |
| 35 | } |
| 36 | if v.CanAddr() { |
| 37 | return v.Addr() |
| 38 | } |
| 39 | pv := reflect.New(v.Type()) |
| 40 | pv.Elem().Set(v) |
| 41 | return pv |
| 42 | } |
| 43 | |
| 44 | // OnePointerValue returns a value that is exactly one pointer away |
| 45 | // from a non-pointer value. |
no test coverage detected