Codebase list golang-github-vbauerster-mpb / d995c72
ContainerFuncOptional, ContainerFuncOptOn Vladimir Bauer 3 years ago
1 changed file(s) with 18 addition(s) and 3 deletion(s). Raw diff Collapse all Expand all
9797 }
9898 }
9999
100 // ContainerOptional will invoke provided option only when cond is true.
100 // ContainerOptional will return provided option only when cond is true.
101101 func ContainerOptional(option ContainerOption, cond bool) ContainerOption {
102102 if cond {
103103 return option
105105 return nil
106106 }
107107
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.
110109 func ContainerOptOn(option ContainerOption, predicate func() bool) ContainerOption {
111110 if predicate() {
112111 return option
113112 }
114113 return nil
115114 }
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 }