@@ -4246,3 +4246,92 @@ func (cmd *KeyFlagsCmd) readReply(rd *proto.Reader) error {
42464246
42474247 return nil
42484248}
4249+
4250+ // ---------------------------------------------------------------------------------------------------
4251+
4252+ type ClusterLink struct {
4253+ Direction string
4254+ Node string
4255+ CreateTime int64
4256+ Events string
4257+ SendBufferAllocated int64
4258+ SendBufferUsed int64
4259+ }
4260+
4261+ type ClusterLinksCmd struct {
4262+ baseCmd
4263+
4264+ val []ClusterLink
4265+ }
4266+
4267+ var _ Cmder = (* ClusterLinksCmd )(nil )
4268+
4269+ func NewClusterLinksCmd (ctx context.Context , args ... interface {}) * ClusterLinksCmd {
4270+ return & ClusterLinksCmd {
4271+ baseCmd : baseCmd {
4272+ ctx : ctx ,
4273+ args : args ,
4274+ },
4275+ }
4276+ }
4277+
4278+ func (cmd * ClusterLinksCmd ) SetVal (val []ClusterLink ) {
4279+ cmd .val = val
4280+ }
4281+
4282+ func (cmd * ClusterLinksCmd ) Val () []ClusterLink {
4283+ return cmd .val
4284+ }
4285+
4286+ func (cmd * ClusterLinksCmd ) Result () ([]ClusterLink , error ) {
4287+ return cmd .Val (), cmd .Err ()
4288+ }
4289+
4290+ func (cmd * ClusterLinksCmd ) String () string {
4291+ return cmdString (cmd , cmd .val )
4292+ }
4293+
4294+ func (cmd * ClusterLinksCmd ) readReply (rd * proto.Reader ) error {
4295+ n , err := rd .ReadArrayLen ()
4296+ if err != nil {
4297+ return err
4298+ }
4299+ cmd .val = make ([]ClusterLink , n )
4300+
4301+ for i := 0 ; i < len (cmd .val ); i ++ {
4302+ m , err := rd .ReadMapLen ()
4303+ if err != nil {
4304+ return err
4305+ }
4306+
4307+ for j := 0 ; j < m ; j ++ {
4308+ key , err := rd .ReadString ()
4309+ if err != nil {
4310+ return err
4311+ }
4312+
4313+ switch key {
4314+ case "direction" :
4315+ cmd .val [i ].Direction , err = rd .ReadString ()
4316+ case "node" :
4317+ cmd .val [i ].Node , err = rd .ReadString ()
4318+ case "create-time" :
4319+ cmd .val [i ].CreateTime , err = rd .ReadInt ()
4320+ case "events" :
4321+ cmd .val [i ].Events , err = rd .ReadString ()
4322+ case "send-buffer-allocated" :
4323+ cmd .val [i ].SendBufferAllocated , err = rd .ReadInt ()
4324+ case "send-buffer-used" :
4325+ cmd .val [i ].SendBufferUsed , err = rd .ReadInt ()
4326+ default :
4327+ return fmt .Errorf ("redis: unexpected key %q in CLUSTER LINKS reply" , key )
4328+ }
4329+
4330+ if err != nil {
4331+ return err
4332+ }
4333+ }
4334+ }
4335+
4336+ return nil
4337+ }
0 commit comments