...

Source file src/github.com/thoas/go-funk/lazy_builder.go

Documentation: github.com/thoas/go-funk

     1  package funk
     2  
     3  import "reflect"
     4  
     5  type lazyBuilder struct {
     6  	exec func() interface{}
     7  }
     8  
     9  func (b *lazyBuilder) Chunk(size int) Builder {
    10  	return &lazyBuilder{func() interface{} { return Chunk(b.exec(), size) }}
    11  }
    12  func (b *lazyBuilder) Compact() Builder {
    13  	return &lazyBuilder{func() interface{} { return Compact(b.exec()) }}
    14  }
    15  func (b *lazyBuilder) Drop(n int) Builder {
    16  	return &lazyBuilder{func() interface{} { return Drop(b.exec(), n) }}
    17  }
    18  func (b *lazyBuilder) Filter(predicate interface{}) Builder {
    19  	return &lazyBuilder{func() interface{} { return Filter(b.exec(), predicate) }}
    20  }
    21  func (b *lazyBuilder) Flatten() Builder {
    22  	return &lazyBuilder{func() interface{} { return Flatten(b.exec()) }}
    23  }
    24  func (b *lazyBuilder) FlattenDeep() Builder {
    25  	return &lazyBuilder{func() interface{} { return FlattenDeep(b.exec()) }}
    26  }
    27  func (b *lazyBuilder) Initial() Builder {
    28  	return &lazyBuilder{func() interface{} { return Initial(b.exec()) }}
    29  }
    30  func (b *lazyBuilder) Intersect(y interface{}) Builder {
    31  	return &lazyBuilder{func() interface{} { return Intersect(b.exec(), y) }}
    32  }
    33  func (b *lazyBuilder) Join(rarr interface{}, fnc JoinFnc) Builder {
    34  	return &lazyBuilder{func() interface{} { return Join(b.exec(), rarr, fnc) }}
    35  }
    36  func (b *lazyBuilder) Map(mapFunc interface{}) Builder {
    37  	return &lazyBuilder{func() interface{} { return Map(b.exec(), mapFunc) }}
    38  }
    39  func (b *lazyBuilder) FlatMap(mapFunc interface{}) Builder {
    40  	return &lazyBuilder{func() interface{} { return FlatMap(b.exec(), mapFunc) }}
    41  }
    42  func (b *lazyBuilder) Reverse() Builder {
    43  	return &lazyBuilder{func() interface{} { return Reverse(b.exec()) }}
    44  }
    45  func (b *lazyBuilder) Shuffle() Builder {
    46  	return &lazyBuilder{func() interface{} { return Shuffle(b.exec()) }}
    47  }
    48  func (b *lazyBuilder) Tail() Builder {
    49  	return &lazyBuilder{func() interface{} { return Tail(b.exec()) }}
    50  }
    51  func (b *lazyBuilder) Uniq() Builder {
    52  	return &lazyBuilder{func() interface{} { return Uniq(b.exec()) }}
    53  }
    54  func (b *lazyBuilder) Without(values ...interface{}) Builder {
    55  	return &lazyBuilder{func() interface{} { return Without(b.exec(), values...) }}
    56  }
    57  
    58  func (b *lazyBuilder) All() bool {
    59  	return (&chainBuilder{b.exec()}).All()
    60  }
    61  func (b *lazyBuilder) Any() bool {
    62  	return (&chainBuilder{b.exec()}).Any()
    63  }
    64  func (b *lazyBuilder) Contains(elem interface{}) bool {
    65  	return Contains(b.exec(), elem)
    66  }
    67  func (b *lazyBuilder) Every(elements ...interface{}) bool {
    68  	return Every(b.exec(), elements...)
    69  }
    70  func (b *lazyBuilder) Find(predicate interface{}) interface{} {
    71  	return Find(b.exec(), predicate)
    72  }
    73  func (b *lazyBuilder) ForEach(predicate interface{}) {
    74  	ForEach(b.exec(), predicate)
    75  }
    76  func (b *lazyBuilder) ForEachRight(predicate interface{}) {
    77  	ForEachRight(b.exec(), predicate)
    78  }
    79  func (b *lazyBuilder) Head() interface{} {
    80  	return Head(b.exec())
    81  }
    82  func (b *lazyBuilder) Keys() interface{} {
    83  	return Keys(b.exec())
    84  }
    85  func (b *lazyBuilder) IndexOf(elem interface{}) int {
    86  	return IndexOf(b.exec(), elem)
    87  }
    88  func (b *lazyBuilder) IsEmpty() bool {
    89  	return IsEmpty(b.exec())
    90  }
    91  func (b *lazyBuilder) Last() interface{} {
    92  	return Last(b.exec())
    93  }
    94  func (b *lazyBuilder) LastIndexOf(elem interface{}) int {
    95  	return LastIndexOf(b.exec(), elem)
    96  }
    97  func (b *lazyBuilder) NotEmpty() bool {
    98  	return NotEmpty(b.exec())
    99  }
   100  func (b *lazyBuilder) Product() float64 {
   101  	return Product(b.exec())
   102  }
   103  func (b *lazyBuilder) Reduce(reduceFunc, acc interface{}) interface{} {
   104  	return Reduce(b.exec(), reduceFunc, acc)
   105  }
   106  func (b *lazyBuilder) Sum() float64 {
   107  	return Sum(b.exec())
   108  }
   109  func (b *lazyBuilder) Type() reflect.Type {
   110  	return reflect.TypeOf(b.exec())
   111  }
   112  func (b *lazyBuilder) Value() interface{} {
   113  	return b.exec()
   114  }
   115  func (b *lazyBuilder) Values() interface{} {
   116  	return Values(b.exec())
   117  }
   118  

View as plain text