consts.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. // Author: simon (ynwdlxm@163.com)
  2. // Date: 2025/5/26 13:51
  3. // Desc:
  4. package reply
  5. // PongReply 表示PONG响应,用于Redis协议的PONG响应
  6. type PongReply struct{}
  7. func (p PongReply) Error() string {
  8. return ""
  9. }
  10. func (p PongReply) String() string {
  11. return "+PONG\r\n"
  12. }
  13. // ToBytes 将PONG响应转换为字节数组
  14. // 返回格式:"+PONG\r\n"
  15. func (p PongReply) ToBytes() []byte {
  16. return []byte("+PONG\r\n")
  17. }
  18. // NewPongReply 创建新的PongReply实例
  19. func NewPongReply() *PongReply {
  20. return &PongReply{}
  21. }
  22. // OkReply 表示OK响应,用于Redis协议的OK响应
  23. // 返回格式:"+OK\r\n"
  24. type OkReply struct{}
  25. func (o OkReply) Error() string {
  26. return ""
  27. }
  28. func (o OkReply) String() string {
  29. return "+OK\r\n"
  30. }
  31. // ToBytes 将OK响应转换为字节数组
  32. // 返回格式:"+OK\r\n"
  33. func (o OkReply) ToBytes() []byte {
  34. return []byte("+OK\r\n")
  35. }
  36. // NewOkReply 创建新的OkReply实例
  37. func NewOkReply() *OkReply {
  38. return &OkReply{}
  39. }
  40. // NoReply 表示NO响应,用于Redis协议的NO响应
  41. type NoReply struct{}
  42. func (n NoReply) Error() string {
  43. return ""
  44. }
  45. func (n NoReply) String() string {
  46. return ""
  47. }
  48. // ToBytes 将NO响应转换为字节数组
  49. func (n NoReply) ToBytes() []byte {
  50. return []byte("")
  51. }
  52. // NewNoReply 创建新的NoReply实例
  53. func NewNoReply() *NoReply {
  54. return &NoReply{}
  55. }
  56. // NullBulkReply 表示NULL响应,用于Redis协议的NULL响应
  57. // 返回格式:"$-1\r\n"
  58. type NullBulkReply struct{}
  59. func (n NullBulkReply) Error() string {
  60. return ""
  61. }
  62. func (n NullBulkReply) String() string {
  63. return "$-1\r\n"
  64. }
  65. // ToBytes 将NULL响应转换为字节数组
  66. // 返回格式:"$-1\r\n"
  67. func (n NullBulkReply) ToBytes() []byte {
  68. return []byte("$-1\r\n")
  69. }
  70. func NewNullBulkReply() *NullBulkReply {
  71. return &NullBulkReply{}
  72. }
  73. // EmptyMultiBulkReply 表示空的多批量回复,用于Redis协议的空的多批量回复(空数组)
  74. // 返回格式:"*0\r\n"
  75. type EmptyMultiBulkReply struct{}
  76. func (e EmptyMultiBulkReply) Error() string {
  77. return ""
  78. }
  79. func (e EmptyMultiBulkReply) String() string {
  80. return "*0\r\n"
  81. }
  82. // ToBytes 将空的多批量回复转换为字节数组
  83. func (e EmptyMultiBulkReply) ToBytes() []byte {
  84. return []byte("*0\r\n")
  85. }
  86. func NewEmptyMultiBulkReply() *EmptyMultiBulkReply {
  87. return &EmptyMultiBulkReply{}
  88. }
  89. // IsOkReply 判断回复是否为OK响应
  90. func IsOkReply(reply any) bool {
  91. _, ok := reply.(*OkReply)
  92. return ok
  93. }