package reflect2

import (
	
	
)

type safeField struct {
	reflect.StructField
}

func ( *safeField) () uintptr {
	return .StructField.Offset
}

func ( *safeField) () string {
	return .StructField.Name
}

func ( *safeField) () string {
	return .StructField.PkgPath
}

func ( *safeField) () Type {
	panic("not implemented")
}

func ( *safeField) () reflect.StructTag {
	return .StructField.Tag
}

func ( *safeField) () []int {
	return .StructField.Index
}

func ( *safeField) () bool {
	return .StructField.Anonymous
}

func ( *safeField) ( interface{},  interface{}) {
	 := reflect.ValueOf().Elem()
	.FieldByIndex(.Index()).Set(reflect.ValueOf().Elem())
}

func ( *safeField) ( unsafe.Pointer,  unsafe.Pointer) {
	panic("unsafe operation is not supported")
}

func ( *safeField) ( interface{}) interface{} {
	 := reflect.ValueOf().Elem().FieldByIndex(.Index())
	 := reflect.New(.Type())
	.Elem().Set()
	return .Interface()
}

func ( *safeField) ( unsafe.Pointer) unsafe.Pointer {
	panic("does not support unsafe operation")
}