gitee.com/woood2/luca@v1.0.4/cmd/consumer/internal/subscriber/chain.go (about) 1 package subscriber 2 3 type Chain struct { 4 wrappers []MsgMiddleware 5 } 6 7 func NewChain(c ...MsgMiddleware) Chain { 8 return Chain{c} 9 } 10 11 func (c Chain) Then(h MsgHandler) MsgHandler { 12 for i := range c.wrappers { 13 h = c.wrappers[len(c.wrappers)-i-1](h) 14 } 15 return h 16 }