package yu_rand

// Bytes
//
//	@Description: 用于生成指定长度的随机byte切片
func Bytes[T int8 | uint8 | int16 | uint16 | int32 | uint32 | int64 | uint64 | int | uint | uintptr](len T) []byte {
	if len < 0 {
		panic("len必须为非负数")
	}
	bytes := make([]byte, len)
	var i T
	for ; i < len; i++ {
		bytes[i] = byte(Uint32())
	}
	return bytes
}

// BytesEx
//
//	@Description: 用于生成指定长度和字符集的随机byte切片
func BytesEx[T int8 | uint8 | int16 | uint16 | int32 | uint32 | int64 | uint64 | int | uint | uintptr](len T, n byte, base byte) []byte {
	if len < 0 {
		panic("len必须为非负数")
	}
	bytes := make([]byte, len)
	var i T
	for ; i < len; i++ {
		bytes[i] = byte(Uint32())%n + base
	}
	return bytes
}
