summaryrefslogtreecommitdiff
path: root/vendor/codeberg.org/gruf/go-mangler/helpers.go
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2024-01-26 12:14:10 +0000
committerLibravatar GitHub <noreply@github.com>2024-01-26 12:14:10 +0000
commit07207e71e932b0d4a38253e069be6090872c4e3f (patch)
treebee71828fe2e6d3086bcd36e175301388fc95972 /vendor/codeberg.org/gruf/go-mangler/helpers.go
parent[docs] Fix log-timestamp-format (#2572) (diff)
downloadgotosocial-07207e71e932b0d4a38253e069be6090872c4e3f.tar.xz
[performance] cache library performance enhancements (updates go-structr => v0.2.0) (#2575)
* update go-structr => v0.2.0 * update readme * whoops, fix the link
Diffstat (limited to 'vendor/codeberg.org/gruf/go-mangler/helpers.go')
-rw-r--r--vendor/codeberg.org/gruf/go-mangler/helpers.go144
1 files changed, 0 insertions, 144 deletions
diff --git a/vendor/codeberg.org/gruf/go-mangler/helpers.go b/vendor/codeberg.org/gruf/go-mangler/helpers.go
deleted file mode 100644
index 6658fbef4..000000000
--- a/vendor/codeberg.org/gruf/go-mangler/helpers.go
+++ /dev/null
@@ -1,144 +0,0 @@
-package mangler
-
-import (
- "reflect"
- "unsafe"
-)
-
-type (
- // serializing interfacing types.
- stringer interface{ String() string }
- binarymarshaler interface{ MarshalBinary() ([]byte, error) }
- textmarshaler interface{ MarshalText() ([]byte, error) }
- jsonmarshaler interface{ MarshalJSON() ([]byte, error) }
-)
-
-func append_uint16(b []byte, u uint16) []byte {
- return append(b, // LE
- byte(u),
- byte(u>>8),
- )
-}
-
-func append_uint32(b []byte, u uint32) []byte {
- return append(b, // LE
- byte(u),
- byte(u>>8),
- byte(u>>16),
- byte(u>>24),
- )
-}
-
-func append_uint64(b []byte, u uint64) []byte {
- return append(b, // LE
- byte(u),
- byte(u>>8),
- byte(u>>16),
- byte(u>>24),
- byte(u>>32),
- byte(u>>40),
- byte(u>>48),
- byte(u>>56),
- )
-}
-
-func deref_ptr_mangler(mangle Mangler, count int) rMangler {
- return func(buf []byte, v reflect.Value) []byte {
- for i := 0; i < count; i++ {
- // Check for nil
- if v.IsNil() {
- buf = append(buf, '0')
- return buf
- }
-
- // Further deref ptr
- buf = append(buf, '1')
- v = v.Elem()
- }
-
- // Mangle fully deref'd ptr
- return mangle(buf, v.Interface())
- }
-}
-
-func deref_ptr_rmangler(mangle rMangler, count int) rMangler {
- return func(buf []byte, v reflect.Value) []byte {
- for i := 0; i < count; i++ {
- // Check for nil
- if v.IsNil() {
- buf = append(buf, '0')
- return buf
- }
-
- // Further deref ptr
- buf = append(buf, '1')
- v = v.Elem()
- }
-
- // Mangle fully deref'd ptr
- return mangle(buf, v)
- }
-}
-
-func array_to_slice_mangler(mangle Mangler) rMangler {
- return func(buf []byte, v reflect.Value) []byte {
- // Get slice of whole array
- v = v.Slice(0, v.Len())
-
- // Mangle as known slice type
- return mangle(buf, v.Interface())
- }
-}
-
-func iter_array_mangler(mangle Mangler) rMangler {
- return func(buf []byte, v reflect.Value) []byte {
- n := v.Len()
- for i := 0; i < n; i++ {
- buf = mangle(buf, v.Index(i).Interface())
- buf = append(buf, ',')
- }
- if n > 0 {
- buf = buf[:len(buf)-1]
- }
- return buf
- }
-}
-
-func iter_array_rmangler(mangle rMangler) rMangler {
- return func(buf []byte, v reflect.Value) []byte {
- n := v.Len()
- for i := 0; i < n; i++ {
- buf = mangle(buf, v.Index(i))
- buf = append(buf, ',')
- }
- if n > 0 {
- buf = buf[:len(buf)-1]
- }
- return buf
- }
-}
-
-func iter_map_rmangler(kMangle, vMangle rMangler) rMangler {
- return func(buf []byte, v reflect.Value) []byte {
- r := v.MapRange()
- for r.Next() {
- buf = kMangle(buf, r.Key())
- buf = append(buf, ':')
- buf = vMangle(buf, r.Value())
- buf = append(buf, ',')
- }
- if v.Len() > 0 {
- buf = buf[:len(buf)-1]
- }
- return buf
- }
-}
-
-// iface_value returns the raw value ptr for input boxed within interface{} type.
-func iface_value(a any) unsafe.Pointer {
- type eface struct {
- Type unsafe.Pointer
- Value unsafe.Pointer
- }
- return (*eface)(unsafe.Pointer(&a)).Value
-}