BarFuncOptional, BarFuncOptOn
Vladimir Bauer
3 years ago
| 171 | 171 | } |
| 172 | 172 | } |
| 173 | 173 | |
| 174 | // BarOptional will invoke provided option only when cond is true. | |
| 174 | // BarOptional will return provided option only when cond is true. | |
| 175 | 175 | func BarOptional(option BarOption, cond bool) BarOption { |
| 176 | 176 | if cond { |
| 177 | 177 | return option |
| 179 | 179 | return nil |
| 180 | 180 | } |
| 181 | 181 | |
| 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. | |
| 184 | 183 | func BarOptOn(option BarOption, predicate func() bool) BarOption { |
| 185 | 184 | if predicate() { |
| 186 | 185 | return option |
| 187 | 186 | } |
| 188 | 187 | return nil |
| 189 | 188 | } |
| 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 | } | |