mirror of
https://github.com/kubernetes-sigs/prometheus-adapter.git
synced 2026-04-06 17:57:51 +00:00
Travis seems to be having issues pulling deps, so we'll have to check in the vendor directory and prevent the makefile from trying to regenerate it normally.
58 lines
No EOL
1.2 KiB
Go
58 lines
No EOL
1.2 KiB
Go
package reflect2
|
|
|
|
import (
|
|
"reflect"
|
|
"unsafe"
|
|
)
|
|
|
|
type safeField struct {
|
|
reflect.StructField
|
|
}
|
|
|
|
func (field *safeField) Offset() uintptr {
|
|
return field.StructField.Offset
|
|
}
|
|
|
|
func (field *safeField) Name() string {
|
|
return field.StructField.Name
|
|
}
|
|
|
|
func (field *safeField) PkgPath() string {
|
|
return field.StructField.PkgPath
|
|
}
|
|
|
|
func (field *safeField) Type() Type {
|
|
panic("not implemented")
|
|
}
|
|
|
|
func (field *safeField) Tag() reflect.StructTag {
|
|
return field.StructField.Tag
|
|
}
|
|
|
|
func (field *safeField) Index() []int {
|
|
return field.StructField.Index
|
|
}
|
|
|
|
func (field *safeField) Anonymous() bool {
|
|
return field.StructField.Anonymous
|
|
}
|
|
|
|
func (field *safeField) Set(obj interface{}, value interface{}) {
|
|
val := reflect.ValueOf(obj).Elem()
|
|
val.FieldByIndex(field.Index()).Set(reflect.ValueOf(value).Elem())
|
|
}
|
|
|
|
func (field *safeField) UnsafeSet(obj unsafe.Pointer, value unsafe.Pointer) {
|
|
panic("unsafe operation is not supported")
|
|
}
|
|
|
|
func (field *safeField) Get(obj interface{}) interface{} {
|
|
val := reflect.ValueOf(obj).Elem().FieldByIndex(field.Index())
|
|
ptr := reflect.New(val.Type())
|
|
ptr.Elem().Set(val)
|
|
return ptr.Interface()
|
|
}
|
|
|
|
func (field *safeField) UnsafeGet(obj unsafe.Pointer) unsafe.Pointer {
|
|
panic("does not support unsafe operation")
|
|
} |