1: | <?php |
2: | |
3: | declare(strict_types=1); |
4: | |
5: | /** |
6: | * This file is part of the Nexus framework. |
7: | * |
8: | * (c) John Paul E. Balandan, CPA <paulbalandan@gmail.com> |
9: | * |
10: | * For the full copyright and license information, please view |
11: | * the LICENSE file that was distributed with this source code. |
12: | */ |
13: | |
14: | namespace Nexus\Collection; |
15: | |
16: | /** |
17: | * @template TKey |
18: | * @template T |
19: | * |
20: | * @extends \IteratorAggregate<TKey, T> |
21: | * @extends Operation\All<TKey, T> |
22: | * @extends Operation\Any<TKey, T> |
23: | * @extends Operation\Append<TKey, T> |
24: | * @extends Operation\Associate<TKey, T> |
25: | * @extends Operation\Chunk<TKey, T> |
26: | * @extends Operation\Cycle<TKey, T> |
27: | * @extends Operation\Diff<TKey, T> |
28: | * @extends Operation\DiffKey<TKey, T> |
29: | * @extends Operation\Drop<TKey, T> |
30: | * @extends Operation\Every<TKey, T> |
31: | * @extends Operation\Filter<TKey, T> |
32: | * @extends Operation\FilterKeys<TKey, T> |
33: | * @extends Operation\FilterWithKey<TKey, T> |
34: | * @extends Operation\First<TKey, T> |
35: | * @extends Operation\Flip<TKey, T> |
36: | * @extends Operation\Forget<TKey, T> |
37: | * @extends Operation\Get<TKey, T> |
38: | * @extends Operation\Has<TKey, T> |
39: | * @extends Operation\Intersect<TKey, T> |
40: | * @extends Operation\IntersectKey<TKey, T> |
41: | * @extends Operation\Keys<TKey, T> |
42: | * @extends Operation\Limit<TKey, T> |
43: | * @extends Operation\Map<TKey, T> |
44: | * @extends Operation\MapKeys<TKey, T> |
45: | * @extends Operation\MapWithKey<TKey, T> |
46: | * @extends Operation\Partition<TKey, T> |
47: | * @extends Operation\Reduce<TKey, T> |
48: | * @extends Operation\Reductions<TKey, T> |
49: | * @extends Operation\Reject<TKey, T> |
50: | * @extends Operation\Slice<TKey, T> |
51: | * @extends Operation\Take<TKey, T> |
52: | * @extends Operation\Tap<TKey, T> |
53: | * @extends Operation\Values<TKey, T> |
54: | */ |
55: | interface CollectionInterface extends |
56: | \Countable, |
57: | \IteratorAggregate, |
58: | Operation\All, |
59: | Operation\Any, |
60: | Operation\Append, |
61: | Operation\Associate, |
62: | Operation\Chunk, |
63: | Operation\Cycle, |
64: | Operation\Diff, |
65: | Operation\DiffKey, |
66: | Operation\Drop, |
67: | Operation\Every, |
68: | Operation\Filter, |
69: | Operation\FilterKeys, |
70: | Operation\FilterWithKey, |
71: | Operation\First, |
72: | Operation\Flip, |
73: | Operation\Forget, |
74: | Operation\Get, |
75: | Operation\Has, |
76: | Operation\Intersect, |
77: | Operation\IntersectKey, |
78: | Operation\Keys, |
79: | Operation\Limit, |
80: | Operation\Map, |
81: | Operation\MapKeys, |
82: | Operation\MapWithKey, |
83: | Operation\Partition, |
84: | Operation\Reduce, |
85: | Operation\Reductions, |
86: | Operation\Reject, |
87: | Operation\Slice, |
88: | Operation\Take, |
89: | Operation\Tap, |
90: | Operation\Values |
91: | { |
92: | /** |
93: | * @template WrapKey |
94: | * @template Wrap |
95: | * |
96: | * @param (\Closure(): iterable<WrapKey, Wrap>)|iterable<WrapKey, Wrap> $items |
97: | * |
98: | * @return self<WrapKey, Wrap> |
99: | */ |
100: | public static function wrap(\Closure|iterable $items): self; |
101: | } |
102: |