func SetValue(value interface{}, result interface{}) {
	// use reflection to set value
	rv := reflect.ValueOf(value)
	if rv.Kind() != reflect.Ptr || rv.IsNil() {
		panic("Invalid value passed. Must be a non-nil pointer")
	}
	resultVal := reflect.ValueOf(result)
	rvElem := rv.Elem()
	if resultVal.Kind() != rvElem.Kind() && rvElem.Kind() != reflect.Interface {
		panic("Invalid value passed. Must be a pointer to loader's return type")
	}
	rvElem.Set(reflect.ValueOf(result))
}
// SetValue will write result to value
SetValue will write result to value
// SetValue will write result to value
func SetValue(value interface{}, result interface{}) {
	rv := reflect.ValueOf(value)
	if rv.Kind() != reflect.Ptr || rv.IsNil() {
		panic("Invalid value passed. Must be a non-nil pointer")
	}
	resultVal := reflect.ValueOf(result)
	rvElem := rv.Elem()
	if resultVal.Kind() != rvElem.Kind() && rvElem.Kind() != reflect.Interface {
		panic("Invalid value passed. Must be a pointer to loader's return type")
	}
	rvElem.Set(reflect.ValueOf(result))
}
func SetValue ( value interface { } , result interface { } ) { rv := reflect . ValueOf ( value ) if rv . Kind ( ) != reflect . Ptr || rv . IsNil ( ) { panic ( " " ) } resultVal := reflect . ValueOf ( result ) rvElem := rv . Elem ( ) if resultVal . Kind ( ) != rvElem . Kind ( ) && rvElem . Kind ( ) != reflect . Interface { panic ( " " ) } rvElem . Set ( reflect . ValueOf ( result ) ) }
SetValue will write result to value
SetValue will write result to value
// use reflection to set value