utilities

package
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 31, 2025 License: BSD-3-Clause Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BoolToByte

func BoolToByte(b bool) byte

BoolToByte 将bool转换为byte 如果 b 为 true,返回 1;否则返回 0。

func Get7BitEncodedIntSize added in v1.0.5

func Get7BitEncodedIntSize(value int32) int

Get7BitEncodedIntSize 计算编码一个 int32 值所需的字节数 与 Write7BitEncodedInt 保持一致的编码逻辑

func GetPos

func GetPos(r io.Reader) int64

GetPos 获取 io.Reader 的当前位置。 如果 io.Reader 支持 Seek,返回当前位置。 如果不支持 Seek,返回 -1。

func GetReaderPos

func GetReaderPos(r io.Reader) (int64, bool)

GetReaderPos 获取 io.Reader 的当前位置。 如果 io.Reader 支持 Seek,返回当前位置。 如果不支持 Seek,返回 -1, false。

func GetStringHashCRC32 added in v1.0.6

func GetStringHashCRC32(s string) (int32, error)

GetStringHashCRC32 计算字符串的哈希值并返回一个 int32 类型的值。 这个函数使用了 CRC-32 哈希算法,将字符串转换为一个 32 位的哈希值。

func GetStringHashFNV1a added in v1.0.6

func GetStringHashFNV1a(s string) (int32, error)

GetStringHashFNV1a 计算字符串的哈希值并返回一个 int32 类型的值。 这个函数使用了 FNV-1a 哈希算法,将字符串转换为一个 32 位的哈希值。

func GetStringHashSHA256

func GetStringHashSHA256(s string) (int32, error)

GetStringHashSHA256 计算字符串的哈希值并返回一个 int32 类型的值。 这个函数使用了 SHA-256 哈希算法,将字符串转换为一个 32 位的哈希值。 由于 SHA-256 哈希算法的输出是一个 256 位的哈希值,这里只取前 32 位作为返回值。

func PeekByte

func PeekByte(r io.Reader) (byte, error)

PeekByte 偷看下一个字节,不移动读取指针。 这里需要一个带缓冲、可 Peek 的包装,如 bufio.Reader。

func PeekString

func PeekString(rs io.ReadSeeker) (string, error)

PeekString 读取下一个字符串(LEB128 + UTF-8),但不消耗它。 因此下次再从同一个 reader 中读取时,会得到相同的数据。

func Read7BitEncodedInt added in v1.0.5

func Read7BitEncodedInt(reader io.Reader) (int32, error)

Read7BitEncodedInt 读取 C# 格式的 7-bit encoded int 完全匹配 .NET 4.8 的实现逻辑

func ReadBool

func ReadBool(r io.Reader) (bool, error)

ReadBool 读取一个字节,返回 bool,如果字节非 0 则返回 true,否则返回 false 对应 C# 中的 BinaryReader.ReadBoolean

func ReadByte

func ReadByte(r io.Reader) (byte, error)

ReadByte 读 1 字节

func ReadBytes added in v1.0.8

func ReadBytes(r io.Reader, n int) ([]byte, error)

ReadBytes 读取 n 个字节

func ReadFloat2

func ReadFloat2(r io.Reader) ([2]float32, error)

func ReadFloat3

func ReadFloat3(r io.Reader) ([3]float32, error)

func ReadFloat4

func ReadFloat4(r io.Reader) ([4]float32, error)

func ReadFloat4x4

func ReadFloat4x4(r io.Reader) ([16]float32, error)

func ReadFloat32

func ReadFloat32(r io.Reader) (float32, error)

ReadFloat32 从 r 中读取 4 个字节,以 little-endian 解码成 float32 在 C# 中是 BinaryReader.ReadSingle

func ReadInt32

func ReadInt32(r io.Reader) (int32, error)

ReadInt32 读取 4 字节 int32(little-endian)

func ReadString

func ReadString(r io.Reader) (string, error)

ReadString 读取 C# BinaryWriter.WriteString 格式的字符串 完全匹配 .NET 4.8 的实现逻辑 需要注意这个 7BitEncode 虽然与 LEB128 类似,但不是完全相同

func ReadUInt16

func ReadUInt16(r io.Reader) (uint16, error)

ReadUInt16 读取 2 字节无符号整数 (little-endian)

func ReadUInt32 added in v1.0.8

func ReadUInt32(r io.Reader) (uint32, error)

ReadUInt32 读取 4 字节无符号整数 (little-endian)

func Write7BitEncodedInt added in v1.0.5

func Write7BitEncodedInt(writer io.Writer, value int32) error

Write7BitEncodedInt 写入 C# 格式的 7-bit encoded int 完全匹配 .NET 4.8 的实现:支持负数,使用无符号转换

func WriteBool

func WriteBool(w io.Writer, v bool) error

WriteBool 写一个字节,如果 b 为 true 则写入 1,否则写入 0

func WriteByte

func WriteByte(w io.Writer, b byte) error

WriteByte 写单字节

func WriteBytes added in v1.0.8

func WriteBytes(w io.Writer, bs []byte) error

WriteBytes 写多个字节

func WriteFloat2

func WriteFloat2(w io.Writer, arr [2]float32) error

func WriteFloat3

func WriteFloat3(w io.Writer, arr [3]float32) error

func WriteFloat4

func WriteFloat4(w io.Writer, arr [4]float32) error

func WriteFloat4x4

func WriteFloat4x4(w io.Writer, arr [16]float32) error

func WriteFloat32

func WriteFloat32(w io.Writer, val float32) error

WriteFloat32 写一个 float32 (4 bytes, little-endian) 在 C# 中是 BinaryWriter.WriteSingle

func WriteInt32

func WriteInt32(w io.Writer, v int32) error

WriteInt32 写一个 4 字节 int32(little-endian)

func WriteString

func WriteString(w io.Writer, s string) error

WriteString 写入 C# BinaryWriter.WriteString 格式的字符串 完全匹配 .NET 4.8 的实现逻辑 需要注意这个 7BitEncode 虽然与 LEB128 类似,但不是完全相同

func WriteUInt16

func WriteUInt16(w io.Writer, val uint16) error

WriteUInt16 写入一个16位无符号整数(little-endian)

func WriteUInt32 added in v1.0.8

func WriteUInt32(w io.Writer, val uint32) error

WriteUInt32 写入一个 4 字节 uint32(little-endian)

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL