1
0
mirror of https://github.com/rancher/steve.git synced 2025-06-30 08:42:06 +00:00
steve/pkg/sqlcache/informer/shared_informer_hack.go
Tom Lebreux 9dd9b0f625
Move lasso SQL cache in Steve (#452)
* Copy pkg/cache/sql from lasso to pkg/sqlcache

* Rename import from github.com/rancher/lasso/pkg/cache/sql to github.com/rancher/steve/pkg/sqlcache

* Fix filter.Match -> filter.Matches

* go mod tidy

* Fix lint errors

* Remove lasso SQL cache mentions

* Fix more CI lint errors

* fix goimports

Signed-off-by: Silvio Moioli <silvio@moioli.net>

* fix tests (Match -> Matches)

Signed-off-by: Silvio Moioli <silvio@moioli.net>

* Fix Sort order

---------

Signed-off-by: Silvio Moioli <silvio@moioli.net>
Co-authored-by: Silvio Moioli <silvio@moioli.net>
2025-01-17 09:34:48 -05:00

23 lines
647 B
Go

package informer
import (
"reflect"
"unsafe"
)
// UnsafeSet replaces the passed object's field value with the passed value.
func UnsafeSet(object any, field string, value any) {
rs := reflect.ValueOf(object).Elem()
rf := rs.FieldByName(field)
wrf := reflect.NewAt(rf.Type(), unsafe.Pointer(rf.UnsafeAddr())).Elem()
wrf.Set(reflect.ValueOf(value))
}
// UnsafeGet returns the value of the passed object's for the passed field.
func UnsafeGet(object any, field string) any {
rs := reflect.ValueOf(object).Elem()
rf := rs.FieldByName(field)
wrf := reflect.NewAt(rf.Type(), unsafe.Pointer(rf.UnsafeAddr())).Elem()
return wrf.Interface()
}