util.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package util
  2. import (
  3. "encoding/binary"
  4. "fmt"
  5. )
  6. // Panic with test
  7. func Panic(err error) {
  8. if err != nil {
  9. panic(err)
  10. }
  11. }
  12. // Panicf with test
  13. func Panicf(format string, err error) {
  14. if err != nil {
  15. panic(fmt.Errorf(format, err))
  16. }
  17. }
  18. // PanicfArgs with test
  19. func PanicfArgs(err error, format string, args ...interface{}) {
  20. if err != nil {
  21. panic(fmt.Errorf(format, args...))
  22. }
  23. }
  24. // Check error function
  25. func Check(format string, args ...interface{}) {
  26. var hasError bool
  27. for _, v := range args {
  28. if err, ok := v.(error); ok && err != nil {
  29. hasError = true
  30. break
  31. }
  32. }
  33. if hasError {
  34. panic(fmt.Errorf(format, args...))
  35. }
  36. }
  37. // Uint64ToBytes func
  38. func Uint64ToBytes(v uint64) []byte {
  39. bb := make([]byte, 8)
  40. binary.LittleEndian.PutUint64(bb, v)
  41. return bb
  42. }
  43. // BytesToUint64 func
  44. func BytesToUint64(v []byte) uint64 {
  45. return binary.LittleEndian.Uint64(v)
  46. }
  47. // UintToBytes func
  48. func UintToBytes(v uint) []byte {
  49. bb := make([]byte, 4)
  50. binary.LittleEndian.PutUint32(bb, uint32(v))
  51. return bb
  52. }
  53. // BytesToUint func
  54. func BytesToUint(v []byte) uint {
  55. return uint(binary.LittleEndian.Uint32(v))
  56. }
  57. // InStringSlice func
  58. func InStringSlice(v string, list ...string) bool {
  59. for _, vl := range list {
  60. if v == vl {
  61. return true
  62. }
  63. }
  64. return false
  65. }