util.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. // UintToBytes func
  44. func UintToBytes(v uint) []byte {
  45. bb := make([]byte, 4)
  46. binary.LittleEndian.PutUint32(bb, uint32(v))
  47. return bb
  48. }
  49. // InStringSlice func
  50. func InStringSlice(v string, list ...string) bool {
  51. for _, vl := range list {
  52. if v == vl {
  53. return true
  54. }
  55. }
  56. return false
  57. }