mirror of
https://github.com/superseriousbusiness/gotosocial
synced 2025-06-05 21:59:39 +02:00
pull in latest go-kv, go-cache (#1530)
Signed-off-by: kim <grufwub@gmail.com>
This commit is contained in:
119
vendor/codeberg.org/gruf/go-mangler/init.go
generated
vendored
Normal file
119
vendor/codeberg.org/gruf/go-mangler/init.go
generated
vendored
Normal file
@@ -0,0 +1,119 @@
|
||||
package mangler
|
||||
|
||||
import (
|
||||
"net"
|
||||
"net/netip"
|
||||
"net/url"
|
||||
"reflect"
|
||||
"time"
|
||||
_ "unsafe"
|
||||
)
|
||||
|
||||
func init() {
|
||||
// Register standard library performant manglers.
|
||||
Register(reflect.TypeOf(net.IPAddr{}), mangle_ipaddr)
|
||||
Register(reflect.TypeOf(&net.IPAddr{}), mangle_ipaddr_ptr)
|
||||
Register(reflect.TypeOf(netip.Addr{}), mangle_addr)
|
||||
Register(reflect.TypeOf(&netip.Addr{}), mangle_addr_ptr)
|
||||
Register(reflect.TypeOf(netip.AddrPort{}), mangle_addrport)
|
||||
Register(reflect.TypeOf(&netip.AddrPort{}), mangle_addrport_ptr)
|
||||
Register(reflect.TypeOf(time.Time{}), mangle_time)
|
||||
Register(reflect.TypeOf(&time.Time{}), mangle_time_ptr)
|
||||
Register(reflect.TypeOf(url.URL{}), mangle_url)
|
||||
Register(reflect.TypeOf(&url.URL{}), mangle_url_ptr)
|
||||
}
|
||||
|
||||
//go:linkname time_sec time.(*Time).sec
|
||||
func time_sec(*time.Time) int64
|
||||
|
||||
//go:linkname time_nsec time.(*Time).nsec
|
||||
func time_nsec(*time.Time) int32
|
||||
|
||||
//go:linkname time_stripMono time.(*Time).stripMono
|
||||
func time_stripMono(*time.Time)
|
||||
|
||||
func mangle_url(buf []byte, a any) []byte {
|
||||
u := (*url.URL)(iface_value(a))
|
||||
return append(buf, u.String()...)
|
||||
}
|
||||
|
||||
func mangle_url_ptr(buf []byte, a any) []byte {
|
||||
if ptr := (*url.URL)(iface_value(a)); ptr != nil {
|
||||
s := ptr.String()
|
||||
buf = append(buf, '1')
|
||||
return append(buf, s...)
|
||||
}
|
||||
buf = append(buf, '0')
|
||||
return buf
|
||||
}
|
||||
|
||||
func mangle_time(buf []byte, a any) []byte {
|
||||
t := *(*time.Time)(iface_value(a))
|
||||
time_stripMono(&t) // force non-monotonic time value.
|
||||
buf = append_uint64(buf, uint64(time_sec(&t)))
|
||||
buf = append_uint32(buf, uint32(time_nsec(&t)))
|
||||
return buf
|
||||
}
|
||||
|
||||
func mangle_time_ptr(buf []byte, a any) []byte {
|
||||
if ptr := (*time.Time)(iface_value(a)); ptr != nil {
|
||||
t := *ptr
|
||||
buf = append(buf, '1')
|
||||
time_stripMono(&t) // force non-monotonic time value.
|
||||
buf = append_uint64(buf, uint64(time_sec(&t)))
|
||||
buf = append_uint32(buf, uint32(time_nsec(&t)))
|
||||
return buf
|
||||
}
|
||||
buf = append(buf, '0')
|
||||
return buf
|
||||
}
|
||||
|
||||
func mangle_ipaddr(buf []byte, a any) []byte {
|
||||
i := *(*net.IPAddr)(iface_value(a))
|
||||
buf = append(buf, i.IP...)
|
||||
buf = append(buf, i.Zone...)
|
||||
return buf
|
||||
}
|
||||
|
||||
func mangle_ipaddr_ptr(buf []byte, a any) []byte {
|
||||
if ptr := (*net.IPAddr)(iface_value(a)); ptr != nil {
|
||||
buf = append(buf, '1')
|
||||
buf = append(buf, ptr.IP...)
|
||||
buf = append(buf, ptr.Zone...)
|
||||
return buf
|
||||
}
|
||||
buf = append(buf, '0')
|
||||
return buf
|
||||
}
|
||||
|
||||
func mangle_addr(buf []byte, a any) []byte {
|
||||
i := (*netip.Addr)(iface_value(a))
|
||||
b, _ := i.MarshalBinary()
|
||||
return append(buf, b...)
|
||||
}
|
||||
|
||||
func mangle_addr_ptr(buf []byte, a any) []byte {
|
||||
if ptr := (*netip.Addr)(iface_value(a)); ptr != nil {
|
||||
buf = append(buf, '1')
|
||||
b, _ := ptr.MarshalBinary()
|
||||
return append(buf, b...)
|
||||
}
|
||||
buf = append(buf, '0')
|
||||
return buf
|
||||
}
|
||||
|
||||
func mangle_addrport(buf []byte, a any) []byte {
|
||||
i := (*netip.AddrPort)(iface_value(a))
|
||||
b, _ := i.MarshalBinary()
|
||||
return append(buf, b...)
|
||||
}
|
||||
|
||||
func mangle_addrport_ptr(buf []byte, a any) []byte {
|
||||
if ptr := (*netip.AddrPort)(iface_value(a)); ptr != nil {
|
||||
buf = append(buf, '1')
|
||||
b, _ := ptr.MarshalBinary()
|
||||
return append(buf, b...)
|
||||
}
|
||||
buf = append(buf, '0')
|
||||
return buf
|
||||
}
|
Reference in New Issue
Block a user