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: