package impl
import (
)
const UnsafeEnabled = true
type Pointer unsafe.Pointer
type offset uintptr
func ( reflect.StructField) offset {
return offset(.Offset)
}
func ( offset) () bool { return != invalidOffset }
var invalidOffset = ^offset(0)
var zeroOffset = offset(0)
type pointer struct{ p unsafe.Pointer }
func ( Pointer) pointer {
return pointer{p: unsafe.Pointer()}
}
func ( reflect.Value) pointer {
return pointer{p: unsafe.Pointer(.Pointer())}
}
func ( any) pointer {
type struct {
unsafe.Pointer
unsafe.Pointer
}
return pointer{p: (*)(unsafe.Pointer(&)).}
}
func ( pointer) () bool {
return .p == nil
}
func ( pointer) ( offset) pointer {
if .IsNil() {
panic("invalid nil pointer")
}
return pointer{p: unsafe.Pointer(uintptr(.p) + uintptr())}
}
func ( pointer) ( reflect.Type) reflect.Value {
return reflect.NewAt(, .p)
}
func ( pointer) ( reflect.Type) any {
return .AsValueOf().Interface()
}
func ( pointer) () *bool { return (*bool)(.p) }
func ( pointer) () **bool { return (**bool)(.p) }
func ( pointer) () *[]bool { return (*[]bool)(.p) }
func ( pointer) () *int32 { return (*int32)(.p) }
func ( pointer) () **int32 { return (**int32)(.p) }
func ( pointer) () *[]int32 { return (*[]int32)(.p) }
func ( pointer) () *int64 { return (*int64)(.p) }
func ( pointer) () **int64 { return (**int64)(.p) }
func ( pointer) () *[]int64 { return (*[]int64)(.p) }
func ( pointer) () *uint32 { return (*uint32)(.p) }
func ( pointer) () **uint32 { return (**uint32)(.p) }
func ( pointer) () *[]uint32 { return (*[]uint32)(.p) }
func ( pointer) () *uint64 { return (*uint64)(.p) }
func ( pointer) () **uint64 { return (**uint64)(.p) }
func ( pointer) () *[]uint64 { return (*[]uint64)(.p) }
func ( pointer) () *float32 { return (*float32)(.p) }
func ( pointer) () **float32 { return (**float32)(.p) }
func ( pointer) () *[]float32 { return (*[]float32)(.p) }
func ( pointer) () *float64 { return (*float64)(.p) }
func ( pointer) () **float64 { return (**float64)(.p) }
func ( pointer) () *[]float64 { return (*[]float64)(.p) }
func ( pointer) () *string { return (*string)(.p) }
func ( pointer) () **string { return (**string)(.p) }
func ( pointer) () *[]string { return (*[]string)(.p) }
func ( pointer) () *[]byte { return (*[]byte)(.p) }
func ( pointer) () **[]byte { return (**[]byte)(.p) }
func ( pointer) () *[][]byte { return (*[][]byte)(.p) }
func ( pointer) () *map[int32]ExtensionField { return (*map[int32]ExtensionField)(.p) }
func ( pointer) () **protolazy.XXX_lazyUnmarshalInfo {
return (**protolazy.XXX_lazyUnmarshalInfo)(.p)
}
func ( pointer) () presence {
return presence{P: .p}
}
func ( pointer) () pointer {
return pointer{p: *(*unsafe.Pointer)(.p)}
}
func ( pointer) () []pointer {
return *(*[]pointer)(.p)
}
func ( pointer) ( pointer) {
*(*[]pointer)(.p) = append(*(*[]pointer)(.p), )
}
func ( pointer) ( pointer) {
*(*unsafe.Pointer)(.p) = (unsafe.Pointer)(.p)
}
func ( pointer) ( int) {
:= .BoolSlice()
:= make([]bool, 0, +len(*))
= [:len(*)]
copy(, *)
* =
}
func ( pointer) ( int) {
:= .Int32Slice()
:= make([]int32, 0, +len(*))
= [:len(*)]
copy(, *)
* =
}
func ( pointer) ( int) {
.growInt32Slice()
}
func ( pointer) ( int) {
.growInt32Slice()
}
func ( pointer) ( int) {
:= .Int64Slice()
:= make([]int64, 0, +len(*))
= [:len(*)]
copy(, *)
* =
}
func ( pointer) ( int) {
.growInt64Slice()
}
func ( pointer) ( int) {
.growInt64Slice()
}
const _ = uint(unsafe.Sizeof(unsafe.Pointer(nil)) - unsafe.Sizeof(MessageState{}))
func (Export) ( Pointer) *messageState {
return (*messageState)(unsafe.Pointer())
}
func ( *messageState) () pointer {
return pointer{p: unsafe.Pointer()}
}
func ( *messageState) () *MessageInfo {
:= .LoadMessageInfo()
if == nil {
panic("invalid nil message info; this suggests memory corruption due to a race or shallow copy on the message struct")
}
return
}
func ( *messageState) () *MessageInfo {
return (*MessageInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&.atomicMessageInfo))))
}
func ( *messageState) ( *MessageInfo) {
atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(&.atomicMessageInfo)), unsafe.Pointer())
}
type atomicNilMessage struct{ p unsafe.Pointer }
func ( *atomicNilMessage) ( *MessageInfo) *messageReflectWrapper {
if := atomic.LoadPointer(&.p); != nil {
return (*messageReflectWrapper)()
}
:= &messageReflectWrapper{mi: }
atomic.CompareAndSwapPointer(&.p, nil, (unsafe.Pointer)())
return (*messageReflectWrapper)(atomic.LoadPointer(&.p))
}