NewStack 创建中间件栈
(middlewares []Middleware)
| 15 | |
| 16 | // NewStack 创建中间件栈 |
| 17 | func NewStack(middlewares []Middleware) *Stack { |
| 18 | // 按优先级排序(优先级数值越小越先执行) |
| 19 | sorted := make([]Middleware, len(middlewares)) |
| 20 | copy(sorted, middlewares) |
| 21 | sort.Slice(sorted, func(i, j int) bool { |
| 22 | return sorted[i].Priority() < sorted[j].Priority() |
| 23 | }) |
| 24 | |
| 25 | return &Stack{ |
| 26 | middlewares: sorted, |
| 27 | } |
| 28 | } |
| 29 | |
| 30 | // Tools 收集所有中间件提供的工具 |
| 31 | func (s *Stack) Tools() []tools.Tool { |