predicate.go 365 B

12345678910111213141516171819202122232425
  1. package predicate
  2. type Predicate func() bool
  3. func All(predicates ...Predicate) Predicate {
  4. return func() bool {
  5. for _, p := range predicates {
  6. if !p() {
  7. return false
  8. }
  9. }
  10. return true
  11. }
  12. }
  13. func Any(predicates ...Predicate) Predicate {
  14. return func() bool {
  15. for _, p := range predicates {
  16. if p() {
  17. return true
  18. }
  19. }
  20. return false
  21. }
  22. }