bump to v0.6.2

This commit is contained in:
kim 2024-04-10 18:33:57 +01:00
parent 185bfbb76e
commit fd7bcfeaa6
7 changed files with 18 additions and 21 deletions

2
go.mod
View file

@ -21,7 +21,7 @@ require (
codeberg.org/gruf/go-runners v1.6.2
codeberg.org/gruf/go-sched v1.2.3
codeberg.org/gruf/go-store/v2 v2.2.4
codeberg.org/gruf/go-structr v0.6.1
codeberg.org/gruf/go-structr v0.6.2
codeberg.org/superseriousbusiness/exif-terminator v0.7.0
github.com/DmitriyVTitov/size v1.5.0
github.com/KimMachineGun/automemlimit v0.5.0

4
go.sum
View file

@ -72,8 +72,8 @@ codeberg.org/gruf/go-sched v1.2.3 h1:H5ViDxxzOBR3uIyGBCf0eH8b1L8wMybOXcdtUUTXZHk
codeberg.org/gruf/go-sched v1.2.3/go.mod h1:vT9uB6KWFIIwnG9vcPY2a0alYNoqdL1mSzRM8I+PK7A=
codeberg.org/gruf/go-store/v2 v2.2.4 h1:8HO1Jh2gg7boQKA3hsDAIXd9zwieu5uXwDXEcTOD9js=
codeberg.org/gruf/go-store/v2 v2.2.4/go.mod h1:zI4VWe5CpXAktYMtaBMrgA5QmO0sQH53LBRvfn1huys=
codeberg.org/gruf/go-structr v0.6.1 h1:IA3UQlMpQW4LTk0fCm/IoNNzhSREcZlZ01/d8pNriR4=
codeberg.org/gruf/go-structr v0.6.1/go.mod h1:K1FXkUyO6N/JKt8aWqyQ8rtW7Z9ZmXKWP8mFAQ2OJjE=
codeberg.org/gruf/go-structr v0.6.2 h1:1zs7UkPBsRGRDMHhrfFL7GrwAyPHxFXCchu8ADv/zuM=
codeberg.org/gruf/go-structr v0.6.2/go.mod h1:K1FXkUyO6N/JKt8aWqyQ8rtW7Z9ZmXKWP8mFAQ2OJjE=
codeberg.org/superseriousbusiness/exif-terminator v0.7.0 h1:Y6VApSXhKqExG0H2hZ2JelRK4xmWdjDQjn13CpEfzko=
codeberg.org/superseriousbusiness/exif-terminator v0.7.0/go.mod h1:gCWKduudUWFzsnixoMzu0FYVdxHWG+AbXnZ50DqxsUE=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=

View file

@ -527,6 +527,9 @@ func (c *Cache[T]) store_value(index *Index, key Key, value T) {
index.append(key, item)
}
// Get ptr to value data.
ptr := unsafe.Pointer(&value)
// Acquire key buf.
buf := new_buffer()
@ -541,7 +544,7 @@ func (c *Cache[T]) store_value(index *Index, key Key, value T) {
}
// Extract fields comprising index key.
parts := extract_fields(value, idx.fields)
parts := extract_fields(ptr, idx.fields)
if parts == nil {
continue
}

View file

@ -220,7 +220,7 @@ func (i *Index) key(buf *byteutil.Buffer, parts []any) Key {
for x, field := range i.fields {
before := len(buf.B)
buf.B = field.mangle(buf.B, parts[x])
if string(buf.B[before:]) == field.mzero {
if string(buf.B[before:]) == field.zero {
return Key{}
}
buf.B = append(buf.B, '.')

View file

@ -262,6 +262,9 @@ func (q *Queue[T]) index(value T) *indexed_item {
// Set item value.
item.data = value
// Get ptr to value data.
ptr := unsafe.Pointer(&value)
// Acquire key buf.
buf := new_buffer()
@ -270,7 +273,7 @@ func (q *Queue[T]) index(value T) *indexed_item {
idx := &(q.indices[i])
// Extract fields comprising index key.
parts := extract_fields(value, idx.fields)
parts := extract_fields(ptr, idx.fields)
if parts == nil {
continue
}

View file

@ -32,12 +32,7 @@ type struct_field struct {
// mangled zero value string,
// if set this indicates zero
// values of field not allowed
mzero string
// zero value data ptr for field,
// used when nil encountered during
// next_offset following loop.
pzero unsafe.Pointer
zero string
}
// next_offset defines a next offset location
@ -111,24 +106,20 @@ func find_field(t reflect.Type, names []string) (sfield struct_field) {
// Get field type as reflect2.
sfield.type2 = reflect2.Type2(t)
i := sfield.type2.New()
// Find mangler for field type.
sfield.mangle = mangler.Get(t)
// Set possible zero value data.
sfield.pzero = sfield.type2.UnsafeNew()
i := sfield.type2.UnsafeIndirect(sfield.pzero)
sfield.mzero = string(sfield.mangle(nil, i))
// Set possible mangled zero value.
sfield.zero = string(sfield.mangle(nil, i))
return
}
// extract_fields extracts given structfields from the provided value type,
// this is done using predetermined struct field memory offset locations.
func extract_fields[T any](value T, fields []struct_field) []any {
// Get ptr to raw value data.
ptr := unsafe.Pointer(&value)
func extract_fields(ptr unsafe.Pointer, fields []struct_field) []any {
// Prepare slice of field ifaces.
ifaces := make([]any, len(fields))
for i, field := range fields {

2
vendor/modules.txt vendored
View file

@ -59,7 +59,7 @@ codeberg.org/gruf/go-sched
## explicit; go 1.19
codeberg.org/gruf/go-store/v2/storage
codeberg.org/gruf/go-store/v2/util
# codeberg.org/gruf/go-structr v0.6.1
# codeberg.org/gruf/go-structr v0.6.2
## explicit; go 1.21
codeberg.org/gruf/go-structr
# codeberg.org/superseriousbusiness/exif-terminator v0.7.0