util.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package util
  2. import (
  3. "crypto/rsa"
  4. "encoding/binary"
  5. "encoding/json"
  6. "fmt"
  7. "io"
  8. )
  9. // Signer interface
  10. type Signer interface {
  11. GetPrivateKey() *rsa.PrivateKey
  12. }
  13. // Check error function
  14. func Check(format string, args ...interface{}) {
  15. var hasError bool
  16. for _, v := range args {
  17. if err, ok := v.(error); ok && err != nil {
  18. hasError = true
  19. break
  20. }
  21. }
  22. if hasError {
  23. panic(fmt.Errorf(format, args...))
  24. }
  25. }
  26. // Uint64ToBytes func
  27. func Uint64ToBytes(v uint64) []byte {
  28. bb := make([]byte, 8)
  29. binary.LittleEndian.PutUint64(bb, v)
  30. return bb
  31. }
  32. // UintToBytes func
  33. func UintToBytes(v uint) []byte {
  34. bb := make([]byte, 4)
  35. binary.LittleEndian.PutUint32(bb, uint32(v))
  36. return bb
  37. }
  38. // JSONMarshal func
  39. func JSONMarshal(w io.Writer, v interface{}) {
  40. if d, err := json.Marshal(v); err == nil {
  41. w.Write(d)
  42. } else {
  43. panic(err)
  44. }
  45. }
  46. // JSONUnmarshal func
  47. func JSONUnmarshal(b []byte, v interface{}) interface{} {
  48. if err := json.Unmarshal(b, v); err != nil {
  49. panic(err)
  50. }
  51. return v
  52. }
  53. // InStringSlice func
  54. func InStringSlice(v string, list ...string) bool {
  55. for _, vl := range list {
  56. if v == vl {
  57. return true
  58. }
  59. }
  60. return false
  61. }