Files
llgo/runtime/internal/lib/hash/maphash/maphash.go
xgopilot ed3176a6cc test: expand maphash demo with comprehensive API coverage
- Add tests for all major hash/maphash public APIs:
  * Hash basics (WriteString, Sum64, Reset)
  * MakeSeed and SetSeed functionality
  * Write methods (Write, WriteByte, WriteString)
  * Bytes and String convenience functions
- Use panic() for unexpected errors instead of silent failures
- Add proper error checking and validation
- Document Comparable/WriteComparable limitations in overlay

Note: Comparable() and WriteComparable() are not yet supported and will
panic with 'intrinsic' error as they require runtime intrinsic support.

Generated with [codeagent](https://github.com/qbox/codeagent)
Co-authored-by: luoliwoshang <luoliwoshang@users.noreply.github.com>
2025-10-14 10:18:28 +00:00

35 lines
1.2 KiB
Go

/*
* Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package maphash
import "unsafe"
// NOTE: The following functions are not yet implemented and will panic with "intrinsic":
// - Comparable(seed Seed, v any) uint64
// - (*Hash).WriteComparable(v any) (int, error)
// These functions require runtime intrinsic support that is not currently available.
//go:linkname runtime_rand github.com/goplus/llgo/runtime/internal/runtime.fastrand64
func runtime_rand() uint64
//go:linkname runtime_memhash github.com/goplus/llgo/runtime/internal/runtime.memhash
func runtime_memhash(p unsafe.Pointer, seed, s uintptr) uintptr
func randUint64() uint64 {
return runtime_rand()
}