Files
redka/redsrv/internal/command/conn/echo.go
2025-07-13 22:37:43 +05:00

34 lines
626 B
Go

package conn
import (
"strings"
"github.com/nalgeon/redka/redsrv/internal/parser"
"github.com/nalgeon/redka/redsrv/internal/redis"
)
// Echo returns the given string.
// ECHO message
// https://redis.io/commands/echo
type Echo struct {
redis.BaseCmd
parts []string
}
func ParseEcho(b redis.BaseCmd) (Echo, error) {
cmd := Echo{BaseCmd: b}
err := parser.New(
parser.Strings(&cmd.parts),
).Required(1).Run(cmd.Args())
if err != nil {
return Echo{}, err
}
return cmd, nil
}
func (c Echo) Run(w redis.Writer, _ redis.Redka) (any, error) {
out := strings.Join(c.parts, " ")
w.WriteAny(out)
return out, nil
}