MCPcopy
hub / github.com/redis/go-redis / readXInfoStreamConsumers

Function readXInfoStreamConsumers

command.go:3951–4037  ·  view source on GitHub ↗
(rd *proto.Reader)

Source from the content-addressed store, hash-verified

3949}
3950
3951func readXInfoStreamConsumers(rd *proto.Reader) ([]XInfoStreamConsumer, error) {
3952 n, err := rd.ReadArrayLen()
3953 if err != nil {
3954 return nil, err
3955 }
3956
3957 consumers := make([]XInfoStreamConsumer, 0, n)
3958
3959 for i := 0; i < n; i++ {
3960 nn, err := rd.ReadMapLen()
3961 if err != nil {
3962 return nil, err
3963 }
3964
3965 c := XInfoStreamConsumer{}
3966
3967 for f := 0; f < nn; f++ {
3968 cKey, err := rd.ReadString()
3969 if err != nil {
3970 return nil, err
3971 }
3972
3973 switch cKey {
3974 case "name":
3975 c.Name, err = rd.ReadString()
3976 case "seen-time":
3977 seen, err := rd.ReadInt()
3978 if err != nil {
3979 return nil, err
3980 }
3981 c.SeenTime = time.UnixMilli(seen)
3982 case "active-time":
3983 active, err := rd.ReadInt()
3984 if err != nil {
3985 return nil, err
3986 }
3987 c.ActiveTime = time.UnixMilli(active)
3988 case "pel-count":
3989 c.PelCount, err = rd.ReadInt()
3990 case "pending":
3991 pendingNumber, err := rd.ReadArrayLen()
3992 if err != nil {
3993 return nil, err
3994 }
3995
3996 c.Pending = make([]XInfoStreamConsumerPending, 0, pendingNumber)
3997
3998 for pn := 0; pn < pendingNumber; pn++ {
3999 if err = rd.ReadFixedArrayLen(3); err != nil {
4000 return nil, err
4001 }
4002
4003 p := XInfoStreamConsumerPending{}
4004
4005 p.ID, err = rd.ReadString()
4006 if err != nil {
4007 return nil, err
4008 }

Callers 1

readStreamGroupsFunction · 0.85

Calls 6

ReadArrayLenMethod · 0.80
ReadMapLenMethod · 0.80
ReadStringMethod · 0.80
ReadIntMethod · 0.80
ReadFixedArrayLenMethod · 0.80
DiscardNextMethod · 0.80

Tested by

no test coverage detected