ContainerFuncOptional, ContainerFuncOptOn
Vladimir Bauer
3 years ago
| 97 | 97 | } |
| 98 | 98 | } |
| 99 | 99 | |
| 100 | // ContainerOptional will invoke provided option only when cond is true. | |
| 100 | // ContainerOptional will return provided option only when cond is true. | |
| 101 | 101 | func ContainerOptional(option ContainerOption, cond bool) ContainerOption { |
| 102 | 102 | if cond { |
| 103 | 103 | return option |
| 105 | 105 | return nil |
| 106 | 106 | } |
| 107 | 107 | |
| 108 | // ContainerOptOn will invoke provided option only when higher order | |
| 109 | // predicate evaluates to true. | |
| 108 | // ContainerOptOn will return provided option only when predicate evaluates to true. | |
| 110 | 109 | func ContainerOptOn(option ContainerOption, predicate func() bool) ContainerOption { |
| 111 | 110 | if predicate() { |
| 112 | 111 | return option |
| 113 | 112 | } |
| 114 | 113 | return nil |
| 115 | 114 | } |
| 115 | ||
| 116 | // ContainerFuncOptional will call option and return its value only when cond is true. | |
| 117 | func ContainerFuncOptional(option func() ContainerOption, cond bool) ContainerOption { | |
| 118 | if cond { | |
| 119 | return option() | |
| 120 | } | |
| 121 | return nil | |
| 122 | } | |
| 123 | ||
| 124 | // ContainerFuncOptOn will call option and return its value only when predicate evaluates to true. | |
| 125 | func ContainerFuncOptOn(option func() ContainerOption, predicate func() bool) ContainerOption { | |
| 126 | if predicate() { | |
| 127 | return option() | |
| 128 | } | |
| 129 | return nil | |
| 130 | } | |