@@ -175,6 +175,21 @@ func (slice intSlice) TakeWhile(functors ...intFunctorForFilter) intSlice {
175175 return tmpSlice
176176}
177177
178+ //TakeWhilePtr - Returns a new list based on predicate function. It returns new list once condition fails.
179+ func (slice intSlicePtr ) TakeWhilePtr (functors ... intFunctorForFilterPtr ) intSlicePtr {
180+
181+ tmpSlice := slice
182+
183+ for _ , f := range functors {
184+ if f == nil {
185+ continue
186+ }
187+ tmpSlice = TakeWhileIntPtr (f , tmpSlice )
188+ }
189+
190+ return tmpSlice
191+ }
192+
178193type int64Slice []int64
179194type int64FunctorForMap func (int64 ) int64
180195type int64FunctorForFilter func (int64 ) bool
@@ -350,6 +365,21 @@ func (slice int64Slice) TakeWhile(functors ...int64FunctorForFilter) int64Slice
350365 return tmpSlice
351366}
352367
368+ //TakeWhilePtr - Returns a new list based on predicate function. It returns new list once condition fails.
369+ func (slice int64SlicePtr ) TakeWhilePtr (functors ... int64FunctorForFilterPtr ) int64SlicePtr {
370+
371+ tmpSlice := slice
372+
373+ for _ , f := range functors {
374+ if f == nil {
375+ continue
376+ }
377+ tmpSlice = TakeWhileInt64Ptr (f , tmpSlice )
378+ }
379+
380+ return tmpSlice
381+ }
382+
353383type int32Slice []int32
354384type int32FunctorForMap func (int32 ) int32
355385type int32FunctorForFilter func (int32 ) bool
@@ -525,6 +555,21 @@ func (slice int32Slice) TakeWhile(functors ...int32FunctorForFilter) int32Slice
525555 return tmpSlice
526556}
527557
558+ //TakeWhilePtr - Returns a new list based on predicate function. It returns new list once condition fails.
559+ func (slice int32SlicePtr ) TakeWhilePtr (functors ... int32FunctorForFilterPtr ) int32SlicePtr {
560+
561+ tmpSlice := slice
562+
563+ for _ , f := range functors {
564+ if f == nil {
565+ continue
566+ }
567+ tmpSlice = TakeWhileInt32Ptr (f , tmpSlice )
568+ }
569+
570+ return tmpSlice
571+ }
572+
528573type int16Slice []int16
529574type int16FunctorForMap func (int16 ) int16
530575type int16FunctorForFilter func (int16 ) bool
@@ -700,6 +745,21 @@ func (slice int16Slice) TakeWhile(functors ...int16FunctorForFilter) int16Slice
700745 return tmpSlice
701746}
702747
748+ //TakeWhilePtr - Returns a new list based on predicate function. It returns new list once condition fails.
749+ func (slice int16SlicePtr ) TakeWhilePtr (functors ... int16FunctorForFilterPtr ) int16SlicePtr {
750+
751+ tmpSlice := slice
752+
753+ for _ , f := range functors {
754+ if f == nil {
755+ continue
756+ }
757+ tmpSlice = TakeWhileInt16Ptr (f , tmpSlice )
758+ }
759+
760+ return tmpSlice
761+ }
762+
703763type int8Slice []int8
704764type int8FunctorForMap func (int8 ) int8
705765type int8FunctorForFilter func (int8 ) bool
@@ -875,6 +935,21 @@ func (slice int8Slice) TakeWhile(functors ...int8FunctorForFilter) int8Slice {
875935 return tmpSlice
876936}
877937
938+ //TakeWhilePtr - Returns a new list based on predicate function. It returns new list once condition fails.
939+ func (slice int8SlicePtr ) TakeWhilePtr (functors ... int8FunctorForFilterPtr ) int8SlicePtr {
940+
941+ tmpSlice := slice
942+
943+ for _ , f := range functors {
944+ if f == nil {
945+ continue
946+ }
947+ tmpSlice = TakeWhileInt8Ptr (f , tmpSlice )
948+ }
949+
950+ return tmpSlice
951+ }
952+
878953type uintSlice []uint
879954type uintFunctorForMap func (uint ) uint
880955type uintFunctorForFilter func (uint ) bool
@@ -1050,6 +1125,21 @@ func (slice uintSlice) TakeWhile(functors ...uintFunctorForFilter) uintSlice {
10501125 return tmpSlice
10511126}
10521127
1128+ //TakeWhilePtr - Returns a new list based on predicate function. It returns new list once condition fails.
1129+ func (slice uintSlicePtr ) TakeWhilePtr (functors ... uintFunctorForFilterPtr ) uintSlicePtr {
1130+
1131+ tmpSlice := slice
1132+
1133+ for _ , f := range functors {
1134+ if f == nil {
1135+ continue
1136+ }
1137+ tmpSlice = TakeWhileUintPtr (f , tmpSlice )
1138+ }
1139+
1140+ return tmpSlice
1141+ }
1142+
10531143type uint64Slice []uint64
10541144type uint64FunctorForMap func (uint64 ) uint64
10551145type uint64FunctorForFilter func (uint64 ) bool
@@ -1225,6 +1315,21 @@ func (slice uint64Slice) TakeWhile(functors ...uint64FunctorForFilter) uint64Sli
12251315 return tmpSlice
12261316}
12271317
1318+ //TakeWhilePtr - Returns a new list based on predicate function. It returns new list once condition fails.
1319+ func (slice uint64SlicePtr ) TakeWhilePtr (functors ... uint64FunctorForFilterPtr ) uint64SlicePtr {
1320+
1321+ tmpSlice := slice
1322+
1323+ for _ , f := range functors {
1324+ if f == nil {
1325+ continue
1326+ }
1327+ tmpSlice = TakeWhileUint64Ptr (f , tmpSlice )
1328+ }
1329+
1330+ return tmpSlice
1331+ }
1332+
12281333type uint32Slice []uint32
12291334type uint32FunctorForMap func (uint32 ) uint32
12301335type uint32FunctorForFilter func (uint32 ) bool
@@ -1400,6 +1505,21 @@ func (slice uint32Slice) TakeWhile(functors ...uint32FunctorForFilter) uint32Sli
14001505 return tmpSlice
14011506}
14021507
1508+ //TakeWhilePtr - Returns a new list based on predicate function. It returns new list once condition fails.
1509+ func (slice uint32SlicePtr ) TakeWhilePtr (functors ... uint32FunctorForFilterPtr ) uint32SlicePtr {
1510+
1511+ tmpSlice := slice
1512+
1513+ for _ , f := range functors {
1514+ if f == nil {
1515+ continue
1516+ }
1517+ tmpSlice = TakeWhileUint32Ptr (f , tmpSlice )
1518+ }
1519+
1520+ return tmpSlice
1521+ }
1522+
14031523type uint16Slice []uint16
14041524type uint16FunctorForMap func (uint16 ) uint16
14051525type uint16FunctorForFilter func (uint16 ) bool
@@ -1575,6 +1695,21 @@ func (slice uint16Slice) TakeWhile(functors ...uint16FunctorForFilter) uint16Sli
15751695 return tmpSlice
15761696}
15771697
1698+ //TakeWhilePtr - Returns a new list based on predicate function. It returns new list once condition fails.
1699+ func (slice uint16SlicePtr ) TakeWhilePtr (functors ... uint16FunctorForFilterPtr ) uint16SlicePtr {
1700+
1701+ tmpSlice := slice
1702+
1703+ for _ , f := range functors {
1704+ if f == nil {
1705+ continue
1706+ }
1707+ tmpSlice = TakeWhileUint16Ptr (f , tmpSlice )
1708+ }
1709+
1710+ return tmpSlice
1711+ }
1712+
15781713type uint8Slice []uint8
15791714type uint8FunctorForMap func (uint8 ) uint8
15801715type uint8FunctorForFilter func (uint8 ) bool
@@ -1750,6 +1885,21 @@ func (slice uint8Slice) TakeWhile(functors ...uint8FunctorForFilter) uint8Slice
17501885 return tmpSlice
17511886}
17521887
1888+ //TakeWhilePtr - Returns a new list based on predicate function. It returns new list once condition fails.
1889+ func (slice uint8SlicePtr ) TakeWhilePtr (functors ... uint8FunctorForFilterPtr ) uint8SlicePtr {
1890+
1891+ tmpSlice := slice
1892+
1893+ for _ , f := range functors {
1894+ if f == nil {
1895+ continue
1896+ }
1897+ tmpSlice = TakeWhileUint8Ptr (f , tmpSlice )
1898+ }
1899+
1900+ return tmpSlice
1901+ }
1902+
17531903type stringSlice []string
17541904type stringFunctorForMap func (string ) string
17551905type stringFunctorForFilter func (string ) bool
@@ -1925,6 +2075,21 @@ func (slice stringSlice) TakeWhile(functors ...stringFunctorForFilter) stringSli
19252075 return tmpSlice
19262076}
19272077
2078+ //TakeWhilePtr - Returns a new list based on predicate function. It returns new list once condition fails.
2079+ func (slice stringSlicePtr ) TakeWhilePtr (functors ... stringFunctorForFilterPtr ) stringSlicePtr {
2080+
2081+ tmpSlice := slice
2082+
2083+ for _ , f := range functors {
2084+ if f == nil {
2085+ continue
2086+ }
2087+ tmpSlice = TakeWhileStrPtr (f , tmpSlice )
2088+ }
2089+
2090+ return tmpSlice
2091+ }
2092+
19282093type boolSlice []bool
19292094type boolFunctorForMap func (bool ) bool
19302095type boolFunctorForFilter func (bool ) bool
@@ -2100,6 +2265,21 @@ func (slice boolSlice) TakeWhile(functors ...boolFunctorForFilter) boolSlice {
21002265 return tmpSlice
21012266}
21022267
2268+ //TakeWhilePtr - Returns a new list based on predicate function. It returns new list once condition fails.
2269+ func (slice boolSlicePtr ) TakeWhilePtr (functors ... boolFunctorForFilterPtr ) boolSlicePtr {
2270+
2271+ tmpSlice := slice
2272+
2273+ for _ , f := range functors {
2274+ if f == nil {
2275+ continue
2276+ }
2277+ tmpSlice = TakeWhileBoolPtr (f , tmpSlice )
2278+ }
2279+
2280+ return tmpSlice
2281+ }
2282+
21032283type float32Slice []float32
21042284type float32FunctorForMap func (float32 ) float32
21052285type float32FunctorForFilter func (float32 ) bool
@@ -2275,6 +2455,21 @@ func (slice float32Slice) TakeWhile(functors ...float32FunctorForFilter) float32
22752455 return tmpSlice
22762456}
22772457
2458+ //TakeWhilePtr - Returns a new list based on predicate function. It returns new list once condition fails.
2459+ func (slice float32SlicePtr ) TakeWhilePtr (functors ... float32FunctorForFilterPtr ) float32SlicePtr {
2460+
2461+ tmpSlice := slice
2462+
2463+ for _ , f := range functors {
2464+ if f == nil {
2465+ continue
2466+ }
2467+ tmpSlice = TakeWhileFloat32Ptr (f , tmpSlice )
2468+ }
2469+
2470+ return tmpSlice
2471+ }
2472+
22782473type float64Slice []float64
22792474type float64FunctorForMap func (float64 ) float64
22802475type float64FunctorForFilter func (float64 ) bool
@@ -2449,3 +2644,18 @@ func (slice float64Slice) TakeWhile(functors ...float64FunctorForFilter) float64
24492644
24502645 return tmpSlice
24512646}
2647+
2648+ //TakeWhilePtr - Returns a new list based on predicate function. It returns new list once condition fails.
2649+ func (slice float64SlicePtr ) TakeWhilePtr (functors ... float64FunctorForFilterPtr ) float64SlicePtr {
2650+
2651+ tmpSlice := slice
2652+
2653+ for _ , f := range functors {
2654+ if f == nil {
2655+ continue
2656+ }
2657+ tmpSlice = TakeWhileFloat64Ptr (f , tmpSlice )
2658+ }
2659+
2660+ return tmpSlice
2661+ }
0 commit comments