diff --git a/bar_option.go b/bar_option.go index 976c6a8..4af8960 100644 --- a/bar_option.go +++ b/bar_option.go @@ -5,6 +5,7 @@ "io" "github.com/vbauerster/mpb/v5/decor" + "github.com/vbauerster/mpb/v5/internal" ) // BarOption is a function option which changes the default behavior of a bar. @@ -137,9 +138,15 @@ } } -// BarOptOn returns option when condition evaluates to true. -func BarOptOn(option BarOption, condition func() bool) BarOption { - if condition() { +// BarOptional will invoke provided option only when pick is true. +func BarOptional(option BarOption, pick bool) BarOption { + return BarOptOn(option, internal.Predicate(pick)) +} + +// BarOptOn will invoke provided option only when higher order predicate +// evaluates to true. +func BarOptOn(option BarOption, predicate func() bool) BarOption { + if predicate() { return option } return nil diff --git a/container_option.go b/container_option.go index fac59e4..c59c3a5 100644 --- a/container_option.go +++ b/container_option.go @@ -5,6 +5,8 @@ "io/ioutil" "sync" "time" + + "github.com/vbauerster/mpb/v5/internal" ) // ContainerOption is a function option which changes the default @@ -93,9 +95,15 @@ } } -// ContainerOptOn returns option when condition evaluates to true. -func ContainerOptOn(option ContainerOption, condition func() bool) ContainerOption { - if condition() { +// ContainerOptional will invoke provided option only when pick is true. +func ContainerOptional(option ContainerOption, pick bool) ContainerOption { + return ContainerOptOn(option, internal.Predicate(pick)) +} + +// ContainerOptOn will invoke provided option only when higher order +// predicate evaluates to true. +func ContainerOptOn(option ContainerOption, predicate func() bool) ContainerOption { + if predicate() { return option } return nil diff --git a/internal/predicate.go b/internal/predicate.go new file mode 100644 index 0000000..1c2902e --- /dev/null +++ b/internal/predicate.go @@ -0,0 +1,5 @@ +package internal + +func Predicate(pick bool) func() bool { + return func() bool { return pick } +}