Source file src/runtime/map_fast32_swiss.go
1 // Copyright 2018 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 //go:build goexperiment.swissmap 6 7 package runtime 8 9 import ( 10 "internal/abi" 11 "internal/runtime/maps" 12 "unsafe" 13 ) 14 15 // Functions below pushed from internal/runtime/maps. 16 17 //go:linkname mapaccess1_fast32 18 func mapaccess1_fast32(t *abi.SwissMapType, m *maps.Map, key uint32) unsafe.Pointer 19 20 // mapaccess2_fast32 should be an internal detail, 21 // but widely used packages access it using linkname. 22 // Notable members of the hall of shame include: 23 // - github.com/ugorji/go/codec 24 // 25 // Do not remove or change the type signature. 26 // See go.dev/issue/67401. 27 // 28 //go:linkname mapaccess2_fast32 29 func mapaccess2_fast32(t *abi.SwissMapType, m *maps.Map, key uint32) (unsafe.Pointer, bool) 30 31 // mapassign_fast32 should be an internal detail, 32 // but widely used packages access it using linkname. 33 // Notable members of the hall of shame include: 34 // - github.com/bytedance/sonic 35 // - github.com/ugorji/go/codec 36 // 37 // Do not remove or change the type signature. 38 // See go.dev/issue/67401. 39 // 40 //go:linkname mapassign_fast32 41 func mapassign_fast32(t *abi.SwissMapType, m *maps.Map, key uint32) unsafe.Pointer 42 43 // mapassign_fast32ptr should be an internal detail, 44 // but widely used packages access it using linkname. 45 // Notable members of the hall of shame include: 46 // - github.com/ugorji/go/codec 47 // 48 // Do not remove or change the type signature. 49 // See go.dev/issue/67401. 50 // 51 //go:linkname mapassign_fast32ptr 52 func mapassign_fast32ptr(t *abi.SwissMapType, m *maps.Map, key unsafe.Pointer) unsafe.Pointer 53 54 //go:linkname mapdelete_fast32 55 func mapdelete_fast32(t *abi.SwissMapType, m *maps.Map, key uint32) 56