Codebase list golang-github-vbauerster-mpb / 2672d3f
BarFuncOptional, BarFuncOptOn Vladimir Bauer 3 years ago
1 changed file(s) with 18 addition(s) and 3 deletion(s). Raw diff Collapse all Expand all
171171 }
172172 }
173173
174 // BarOptional will invoke provided option only when cond is true.
174 // BarOptional will return provided option only when cond is true.
175175 func BarOptional(option BarOption, cond bool) BarOption {
176176 if cond {
177177 return option
179179 return nil
180180 }
181181
182 // BarOptOn will invoke provided option only when higher order predicate
183 // evaluates to true.
182 // BarOptOn will return provided option only when predicate evaluates to true.
184183 func BarOptOn(option BarOption, predicate func() bool) BarOption {
185184 if predicate() {
186185 return option
187186 }
188187 return nil
189188 }
189
190 // BarFuncOptional will call option and return its value only when cond is true.
191 func BarFuncOptional(option func() BarOption, cond bool) BarOption {
192 if cond {
193 return option()
194 }
195 return nil
196 }
197
198 // BarFuncOptOn will call option and return its value only when predicate evaluates to true.
199 func BarFuncOptOn(option func() BarOption, predicate func() bool) BarOption {
200 if predicate() {
201 return option()
202 }
203 return nil
204 }