github.com/fx-zpy/BloomFilter@v0.0.0-20230301111708-fc3d7eb48353/Utils.go (about)

     1  package BloomFilter
     2  
     3  import (
     4  	"encoding/binary"
     5  	"reflect"
     6  	"unsafe"
     7  )
     8  
     9  func StrToBytes(s string) []byte {
    10  	sh := (*reflect.StringHeader)(unsafe.Pointer(&s))
    11  	bh := reflect.SliceHeader{
    12  		Data: sh.Data,
    13  		Len:  sh.Len,
    14  		Cap:  sh.Len,
    15  	}
    16  	return *(*[]byte)(unsafe.Pointer(&bh))
    17  }
    18  
    19  func Uint16ToBytes(num uint16) []byte {
    20  	data := make([]byte, 2)
    21  	binary.LittleEndian.PutUint16(data, num)
    22  	return data
    23  }
    24  
    25  func Uint32ToBytes(num uint32) []byte {
    26  	data := make([]byte, 4)
    27  	binary.LittleEndian.PutUint32(data, num)
    28  	return data
    29  }
    30  
    31  func Uint64ToBytes(num uint64) []byte {
    32  	data := make([]byte, 8)
    33  	binary.LittleEndian.PutUint64(data, num)
    34  	return data
    35  }