Mixin::allOneOf()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 3
nc 2
nop 3
dl 0
loc 6
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace Webmozart\Assert;
4
5
use ArrayAccess;
6
use Closure;
7
use Countable;
8
use Throwable;
9
10
/**
11
 * This trait provides nurllOr*, all* and allNullOr* variants of assertion base methods.
12
 * Do not use this trait directly: it will change, and is not designed for reuse.
13
 */
14
trait Mixin
15
{
16
    /**
17
     * @psalm-pure
18
     * @psalm-assert string|null $value
19
     *
20
     * @param mixed  $value
21
     * @param string $message
22
     *
23
     * @throws InvalidArgumentException
24
     *
25
     * @return void
26
     */
27
    public static function nullOrString($value, $message = '')
28
    {
29
        null === $value || static::string($value, $message);
30
    }
31
32
    /**
33
     * @psalm-pure
34
     * @psalm-assert iterable<string> $value
35
     *
36
     * @param mixed  $value
37
     * @param string $message
38
     *
39
     * @throws InvalidArgumentException
40
     *
41
     * @return void
42
     */
43
    public static function allString($value, $message = '')
44
    {
45
        static::isIterable($value);
46
47
        foreach ($value as $entry) {
48
            static::string($entry, $message);
49
        }
50
    }
51
52
    /**
53
     * @psalm-pure
54
     * @psalm-assert iterable<string|null> $value
55
     *
56
     * @param mixed  $value
57
     * @param string $message
58
     *
59
     * @throws InvalidArgumentException
60
     *
61
     * @return void
62
     */
63
    public static function allNullOrString($value, $message = '')
64
    {
65
        static::isIterable($value);
66
67
        foreach ($value as $entry) {
68
            null === $entry || static::string($entry, $message);
69
        }
70
    }
71
72
    /**
73
     * @psalm-pure
74
     * @psalm-assert non-empty-string|null $value
75
     *
76
     * @param mixed  $value
77
     * @param string $message
78
     *
79
     * @throws InvalidArgumentException
80
     *
81
     * @return void
82
     */
83
    public static function nullOrStringNotEmpty($value, $message = '')
84
    {
85
        null === $value || static::stringNotEmpty($value, $message);
86
    }
87
88
    /**
89
     * @psalm-pure
90
     * @psalm-assert iterable<non-empty-string> $value
91
     *
92
     * @param mixed  $value
93
     * @param string $message
94
     *
95
     * @throws InvalidArgumentException
96
     *
97
     * @return void
98
     */
99
    public static function allStringNotEmpty($value, $message = '')
100
    {
101
        static::isIterable($value);
102
103
        foreach ($value as $entry) {
104
            static::stringNotEmpty($entry, $message);
105
        }
106
    }
107
108
    /**
109
     * @psalm-pure
110
     * @psalm-assert iterable<non-empty-string|null> $value
111
     *
112
     * @param mixed  $value
113
     * @param string $message
114
     *
115
     * @throws InvalidArgumentException
116
     *
117
     * @return void
118
     */
119
    public static function allNullOrStringNotEmpty($value, $message = '')
120
    {
121
        static::isIterable($value);
122
123
        foreach ($value as $entry) {
124
            null === $entry || static::stringNotEmpty($entry, $message);
125
        }
126
    }
127
128
    /**
129
     * @psalm-pure
130
     * @psalm-assert int|null $value
131
     *
132
     * @param mixed  $value
133
     * @param string $message
134
     *
135
     * @throws InvalidArgumentException
136
     *
137
     * @return void
138
     */
139
    public static function nullOrInteger($value, $message = '')
140
    {
141
        null === $value || static::integer($value, $message);
142
    }
143
144
    /**
145
     * @psalm-pure
146
     * @psalm-assert iterable<int> $value
147
     *
148
     * @param mixed  $value
149
     * @param string $message
150
     *
151
     * @throws InvalidArgumentException
152
     *
153
     * @return void
154
     */
155
    public static function allInteger($value, $message = '')
156
    {
157
        static::isIterable($value);
158
159
        foreach ($value as $entry) {
160
            static::integer($entry, $message);
161
        }
162
    }
163
164
    /**
165
     * @psalm-pure
166
     * @psalm-assert iterable<int|null> $value
167
     *
168
     * @param mixed  $value
169
     * @param string $message
170
     *
171
     * @throws InvalidArgumentException
172
     *
173
     * @return void
174
     */
175
    public static function allNullOrInteger($value, $message = '')
176
    {
177
        static::isIterable($value);
178
179
        foreach ($value as $entry) {
180
            null === $entry || static::integer($entry, $message);
181
        }
182
    }
183
184
    /**
185
     * @psalm-pure
186
     * @psalm-assert numeric|null $value
187
     *
188
     * @param mixed  $value
189
     * @param string $message
190
     *
191
     * @throws InvalidArgumentException
192
     *
193
     * @return void
194
     */
195
    public static function nullOrIntegerish($value, $message = '')
196
    {
197
        null === $value || static::integerish($value, $message);
198
    }
199
200
    /**
201
     * @psalm-pure
202
     * @psalm-assert iterable<numeric> $value
203
     *
204
     * @param mixed  $value
205
     * @param string $message
206
     *
207
     * @throws InvalidArgumentException
208
     *
209
     * @return void
210
     */
211
    public static function allIntegerish($value, $message = '')
212
    {
213
        static::isIterable($value);
214
215
        foreach ($value as $entry) {
216
            static::integerish($entry, $message);
217
        }
218
    }
219
220
    /**
221
     * @psalm-pure
222
     * @psalm-assert iterable<numeric|null> $value
223
     *
224
     * @param mixed  $value
225
     * @param string $message
226
     *
227
     * @throws InvalidArgumentException
228
     *
229
     * @return void
230
     */
231
    public static function allNullOrIntegerish($value, $message = '')
232
    {
233
        static::isIterable($value);
234
235
        foreach ($value as $entry) {
236
            null === $entry || static::integerish($entry, $message);
237
        }
238
    }
239
240
    /**
241
     * @psalm-pure
242
     * @psalm-assert positive-int|null $value
243
     *
244
     * @param mixed  $value
245
     * @param string $message
246
     *
247
     * @throws InvalidArgumentException
248
     *
249
     * @return void
250
     */
251
    public static function nullOrPositiveInteger($value, $message = '')
252
    {
253
        null === $value || static::positiveInteger($value, $message);
0 ignored issues
show
Bug introduced by
The method positiveInteger() does not exist on Webmozart\Assert\Mixin. Did you maybe mean allPositiveInteger()? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

253
        null === $value || static::/** @scrutinizer ignore-call */ positiveInteger($value, $message);

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
254
    }
255
256
    /**
257
     * @psalm-pure
258
     * @psalm-assert iterable<positive-int> $value
259
     *
260
     * @param mixed  $value
261
     * @param string $message
262
     *
263
     * @throws InvalidArgumentException
264
     *
265
     * @return void
266
     */
267
    public static function allPositiveInteger($value, $message = '')
268
    {
269
        static::isIterable($value);
270
271
        foreach ($value as $entry) {
272
            static::positiveInteger($entry, $message);
273
        }
274
    }
275
276
    /**
277
     * @psalm-pure
278
     * @psalm-assert iterable<positive-int|null> $value
279
     *
280
     * @param mixed  $value
281
     * @param string $message
282
     *
283
     * @throws InvalidArgumentException
284
     *
285
     * @return void
286
     */
287
    public static function allNullOrPositiveInteger($value, $message = '')
288
    {
289
        static::isIterable($value);
290
291
        foreach ($value as $entry) {
292
            null === $entry || static::positiveInteger($entry, $message);
293
        }
294
    }
295
296
    /**
297
     * @psalm-pure
298
     * @psalm-assert float|null $value
299
     *
300
     * @param mixed  $value
301
     * @param string $message
302
     *
303
     * @throws InvalidArgumentException
304
     *
305
     * @return void
306
     */
307
    public static function nullOrFloat($value, $message = '')
308
    {
309
        null === $value || static::float($value, $message);
310
    }
311
312
    /**
313
     * @psalm-pure
314
     * @psalm-assert iterable<float> $value
315
     *
316
     * @param mixed  $value
317
     * @param string $message
318
     *
319
     * @throws InvalidArgumentException
320
     *
321
     * @return void
322
     */
323
    public static function allFloat($value, $message = '')
324
    {
325
        static::isIterable($value);
326
327
        foreach ($value as $entry) {
328
            static::float($entry, $message);
329
        }
330
    }
331
332
    /**
333
     * @psalm-pure
334
     * @psalm-assert iterable<float|null> $value
335
     *
336
     * @param mixed  $value
337
     * @param string $message
338
     *
339
     * @throws InvalidArgumentException
340
     *
341
     * @return void
342
     */
343
    public static function allNullOrFloat($value, $message = '')
344
    {
345
        static::isIterable($value);
346
347
        foreach ($value as $entry) {
348
            null === $entry || static::float($entry, $message);
349
        }
350
    }
351
352
    /**
353
     * @psalm-pure
354
     * @psalm-assert numeric|null $value
355
     *
356
     * @param mixed  $value
357
     * @param string $message
358
     *
359
     * @throws InvalidArgumentException
360
     *
361
     * @return void
362
     */
363
    public static function nullOrNumeric($value, $message = '')
364
    {
365
        null === $value || static::numeric($value, $message);
366
    }
367
368
    /**
369
     * @psalm-pure
370
     * @psalm-assert iterable<numeric> $value
371
     *
372
     * @param mixed  $value
373
     * @param string $message
374
     *
375
     * @throws InvalidArgumentException
376
     *
377
     * @return void
378
     */
379
    public static function allNumeric($value, $message = '')
380
    {
381
        static::isIterable($value);
382
383
        foreach ($value as $entry) {
384
            static::numeric($entry, $message);
385
        }
386
    }
387
388
    /**
389
     * @psalm-pure
390
     * @psalm-assert iterable<numeric|null> $value
391
     *
392
     * @param mixed  $value
393
     * @param string $message
394
     *
395
     * @throws InvalidArgumentException
396
     *
397
     * @return void
398
     */
399
    public static function allNullOrNumeric($value, $message = '')
400
    {
401
        static::isIterable($value);
402
403
        foreach ($value as $entry) {
404
            null === $entry || static::numeric($entry, $message);
405
        }
406
    }
407
408
    /**
409
     * @psalm-pure
410
     * @psalm-assert positive-int|0|null $value
411
     *
412
     * @param mixed  $value
413
     * @param string $message
414
     *
415
     * @throws InvalidArgumentException
416
     *
417
     * @return void
418
     */
419
    public static function nullOrNatural($value, $message = '')
420
    {
421
        null === $value || static::natural($value, $message);
422
    }
423
424
    /**
425
     * @psalm-pure
426
     * @psalm-assert iterable<positive-int|0> $value
427
     *
428
     * @param mixed  $value
429
     * @param string $message
430
     *
431
     * @throws InvalidArgumentException
432
     *
433
     * @return void
434
     */
435
    public static function allNatural($value, $message = '')
436
    {
437
        static::isIterable($value);
438
439
        foreach ($value as $entry) {
440
            static::natural($entry, $message);
441
        }
442
    }
443
444
    /**
445
     * @psalm-pure
446
     * @psalm-assert iterable<positive-int|0|null> $value
447
     *
448
     * @param mixed  $value
449
     * @param string $message
450
     *
451
     * @throws InvalidArgumentException
452
     *
453
     * @return void
454
     */
455
    public static function allNullOrNatural($value, $message = '')
456
    {
457
        static::isIterable($value);
458
459
        foreach ($value as $entry) {
460
            null === $entry || static::natural($entry, $message);
461
        }
462
    }
463
464
    /**
465
     * @psalm-pure
466
     * @psalm-assert bool|null $value
467
     *
468
     * @param mixed  $value
469
     * @param string $message
470
     *
471
     * @throws InvalidArgumentException
472
     *
473
     * @return void
474
     */
475
    public static function nullOrBoolean($value, $message = '')
476
    {
477
        null === $value || static::boolean($value, $message);
478
    }
479
480
    /**
481
     * @psalm-pure
482
     * @psalm-assert iterable<bool> $value
483
     *
484
     * @param mixed  $value
485
     * @param string $message
486
     *
487
     * @throws InvalidArgumentException
488
     *
489
     * @return void
490
     */
491
    public static function allBoolean($value, $message = '')
492
    {
493
        static::isIterable($value);
494
495
        foreach ($value as $entry) {
496
            static::boolean($entry, $message);
497
        }
498
    }
499
500
    /**
501
     * @psalm-pure
502
     * @psalm-assert iterable<bool|null> $value
503
     *
504
     * @param mixed  $value
505
     * @param string $message
506
     *
507
     * @throws InvalidArgumentException
508
     *
509
     * @return void
510
     */
511
    public static function allNullOrBoolean($value, $message = '')
512
    {
513
        static::isIterable($value);
514
515
        foreach ($value as $entry) {
516
            null === $entry || static::boolean($entry, $message);
517
        }
518
    }
519
520
    /**
521
     * @psalm-pure
522
     * @psalm-assert scalar|null $value
523
     *
524
     * @param mixed  $value
525
     * @param string $message
526
     *
527
     * @throws InvalidArgumentException
528
     *
529
     * @return void
530
     */
531
    public static function nullOrScalar($value, $message = '')
532
    {
533
        null === $value || static::scalar($value, $message);
534
    }
535
536
    /**
537
     * @psalm-pure
538
     * @psalm-assert iterable<scalar> $value
539
     *
540
     * @param mixed  $value
541
     * @param string $message
542
     *
543
     * @throws InvalidArgumentException
544
     *
545
     * @return void
546
     */
547
    public static function allScalar($value, $message = '')
548
    {
549
        static::isIterable($value);
550
551
        foreach ($value as $entry) {
552
            static::scalar($entry, $message);
553
        }
554
    }
555
556
    /**
557
     * @psalm-pure
558
     * @psalm-assert iterable<scalar|null> $value
559
     *
560
     * @param mixed  $value
561
     * @param string $message
562
     *
563
     * @throws InvalidArgumentException
564
     *
565
     * @return void
566
     */
567
    public static function allNullOrScalar($value, $message = '')
568
    {
569
        static::isIterable($value);
570
571
        foreach ($value as $entry) {
572
            null === $entry || static::scalar($entry, $message);
573
        }
574
    }
575
576
    /**
577
     * @psalm-pure
578
     * @psalm-assert object|null $value
579
     *
580
     * @param mixed  $value
581
     * @param string $message
582
     *
583
     * @throws InvalidArgumentException
584
     *
585
     * @return void
586
     */
587
    public static function nullOrObject($value, $message = '')
588
    {
589
        null === $value || static::object($value, $message);
590
    }
591
592
    /**
593
     * @psalm-pure
594
     * @psalm-assert iterable<object> $value
595
     *
596
     * @param mixed  $value
597
     * @param string $message
598
     *
599
     * @throws InvalidArgumentException
600
     *
601
     * @return void
602
     */
603
    public static function allObject($value, $message = '')
604
    {
605
        static::isIterable($value);
606
607
        foreach ($value as $entry) {
608
            static::object($entry, $message);
609
        }
610
    }
611
612
    /**
613
     * @psalm-pure
614
     * @psalm-assert iterable<object|null> $value
615
     *
616
     * @param mixed  $value
617
     * @param string $message
618
     *
619
     * @throws InvalidArgumentException
620
     *
621
     * @return void
622
     */
623
    public static function allNullOrObject($value, $message = '')
624
    {
625
        static::isIterable($value);
626
627
        foreach ($value as $entry) {
628
            null === $entry || static::object($entry, $message);
629
        }
630
    }
631
632
    /**
633
     * @psalm-pure
634
     * @psalm-assert resource|null $value
635
     *
636
     * @param mixed       $value
637
     * @param string|null $type    type of resource this should be. @see https://www.php.net/manual/en/function.get-resource-type.php
638
     * @param string      $message
639
     *
640
     * @throws InvalidArgumentException
641
     *
642
     * @return void
643
     */
644
    public static function nullOrResource($value, $type = null, $message = '')
645
    {
646
        null === $value || static::resource($value, $type, $message);
647
    }
648
649
    /**
650
     * @psalm-pure
651
     * @psalm-assert iterable<resource> $value
652
     *
653
     * @param mixed       $value
654
     * @param string|null $type    type of resource this should be. @see https://www.php.net/manual/en/function.get-resource-type.php
655
     * @param string      $message
656
     *
657
     * @throws InvalidArgumentException
658
     *
659
     * @return void
660
     */
661
    public static function allResource($value, $type = null, $message = '')
662
    {
663
        static::isIterable($value);
664
665
        foreach ($value as $entry) {
666
            static::resource($entry, $type, $message);
667
        }
668
    }
669
670
    /**
671
     * @psalm-pure
672
     * @psalm-assert iterable<resource|null> $value
673
     *
674
     * @param mixed       $value
675
     * @param string|null $type    type of resource this should be. @see https://www.php.net/manual/en/function.get-resource-type.php
676
     * @param string      $message
677
     *
678
     * @throws InvalidArgumentException
679
     *
680
     * @return void
681
     */
682
    public static function allNullOrResource($value, $type = null, $message = '')
683
    {
684
        static::isIterable($value);
685
686
        foreach ($value as $entry) {
687
            null === $entry || static::resource($entry, $type, $message);
688
        }
689
    }
690
691
    /**
692
     * @psalm-pure
693
     * @psalm-assert callable|null $value
694
     *
695
     * @param mixed  $value
696
     * @param string $message
697
     *
698
     * @throws InvalidArgumentException
699
     *
700
     * @return void
701
     */
702
    public static function nullOrIsCallable($value, $message = '')
703
    {
704
        null === $value || static::isCallable($value, $message);
705
    }
706
707
    /**
708
     * @psalm-pure
709
     * @psalm-assert iterable<callable> $value
710
     *
711
     * @param mixed  $value
712
     * @param string $message
713
     *
714
     * @throws InvalidArgumentException
715
     *
716
     * @return void
717
     */
718
    public static function allIsCallable($value, $message = '')
719
    {
720
        static::isIterable($value);
721
722
        foreach ($value as $entry) {
723
            static::isCallable($entry, $message);
724
        }
725
    }
726
727
    /**
728
     * @psalm-pure
729
     * @psalm-assert iterable<callable|null> $value
730
     *
731
     * @param mixed  $value
732
     * @param string $message
733
     *
734
     * @throws InvalidArgumentException
735
     *
736
     * @return void
737
     */
738
    public static function allNullOrIsCallable($value, $message = '')
739
    {
740
        static::isIterable($value);
741
742
        foreach ($value as $entry) {
743
            null === $entry || static::isCallable($entry, $message);
744
        }
745
    }
746
747
    /**
748
     * @psalm-pure
749
     * @psalm-assert array|null $value
750
     *
751
     * @param mixed  $value
752
     * @param string $message
753
     *
754
     * @throws InvalidArgumentException
755
     *
756
     * @return void
757
     */
758
    public static function nullOrIsArray($value, $message = '')
759
    {
760
        null === $value || static::isArray($value, $message);
761
    }
762
763
    /**
764
     * @psalm-pure
765
     * @psalm-assert iterable<array> $value
766
     *
767
     * @param mixed  $value
768
     * @param string $message
769
     *
770
     * @throws InvalidArgumentException
771
     *
772
     * @return void
773
     */
774
    public static function allIsArray($value, $message = '')
775
    {
776
        static::isIterable($value);
777
778
        foreach ($value as $entry) {
779
            static::isArray($entry, $message);
780
        }
781
    }
782
783
    /**
784
     * @psalm-pure
785
     * @psalm-assert iterable<array|null> $value
786
     *
787
     * @param mixed  $value
788
     * @param string $message
789
     *
790
     * @throws InvalidArgumentException
791
     *
792
     * @return void
793
     */
794
    public static function allNullOrIsArray($value, $message = '')
795
    {
796
        static::isIterable($value);
797
798
        foreach ($value as $entry) {
799
            null === $entry || static::isArray($entry, $message);
800
        }
801
    }
802
803
    /**
804
     * @psalm-pure
805
     * @psalm-assert iterable|null $value
806
     *
807
     * @deprecated use "isIterable" or "isInstanceOf" instead
808
     *
809
     * @param mixed  $value
810
     * @param string $message
811
     *
812
     * @throws InvalidArgumentException
813
     *
814
     * @return void
815
     */
816
    public static function nullOrIsTraversable($value, $message = '')
817
    {
818
        null === $value || static::isTraversable($value, $message);
819
    }
820
821
    /**
822
     * @psalm-pure
823
     * @psalm-assert iterable<iterable> $value
824
     *
825
     * @deprecated use "isIterable" or "isInstanceOf" instead
826
     *
827
     * @param mixed  $value
828
     * @param string $message
829
     *
830
     * @throws InvalidArgumentException
831
     *
832
     * @return void
833
     */
834
    public static function allIsTraversable($value, $message = '')
835
    {
836
        static::isIterable($value);
837
838
        foreach ($value as $entry) {
839
            static::isTraversable($entry, $message);
840
        }
841
    }
842
843
    /**
844
     * @psalm-pure
845
     * @psalm-assert iterable<iterable|null> $value
846
     *
847
     * @deprecated use "isIterable" or "isInstanceOf" instead
848
     *
849
     * @param mixed  $value
850
     * @param string $message
851
     *
852
     * @throws InvalidArgumentException
853
     *
854
     * @return void
855
     */
856
    public static function allNullOrIsTraversable($value, $message = '')
857
    {
858
        static::isIterable($value);
859
860
        foreach ($value as $entry) {
861
            null === $entry || static::isTraversable($entry, $message);
862
        }
863
    }
864
865
    /**
866
     * @psalm-pure
867
     * @psalm-assert array|ArrayAccess|null $value
868
     *
869
     * @param mixed  $value
870
     * @param string $message
871
     *
872
     * @throws InvalidArgumentException
873
     *
874
     * @return void
875
     */
876
    public static function nullOrIsArrayAccessible($value, $message = '')
877
    {
878
        null === $value || static::isArrayAccessible($value, $message);
879
    }
880
881
    /**
882
     * @psalm-pure
883
     * @psalm-assert iterable<array|ArrayAccess> $value
884
     *
885
     * @param mixed  $value
886
     * @param string $message
887
     *
888
     * @throws InvalidArgumentException
889
     *
890
     * @return void
891
     */
892
    public static function allIsArrayAccessible($value, $message = '')
893
    {
894
        static::isIterable($value);
895
896
        foreach ($value as $entry) {
897
            static::isArrayAccessible($entry, $message);
898
        }
899
    }
900
901
    /**
902
     * @psalm-pure
903
     * @psalm-assert iterable<array|ArrayAccess|null> $value
904
     *
905
     * @param mixed  $value
906
     * @param string $message
907
     *
908
     * @throws InvalidArgumentException
909
     *
910
     * @return void
911
     */
912
    public static function allNullOrIsArrayAccessible($value, $message = '')
913
    {
914
        static::isIterable($value);
915
916
        foreach ($value as $entry) {
917
            null === $entry || static::isArrayAccessible($entry, $message);
918
        }
919
    }
920
921
    /**
922
     * @psalm-pure
923
     * @psalm-assert countable|null $value
924
     *
925
     * @param mixed  $value
926
     * @param string $message
927
     *
928
     * @throws InvalidArgumentException
929
     *
930
     * @return void
931
     */
932
    public static function nullOrIsCountable($value, $message = '')
933
    {
934
        null === $value || static::isCountable($value, $message);
935
    }
936
937
    /**
938
     * @psalm-pure
939
     * @psalm-assert iterable<countable> $value
940
     *
941
     * @param mixed  $value
942
     * @param string $message
943
     *
944
     * @throws InvalidArgumentException
945
     *
946
     * @return void
947
     */
948
    public static function allIsCountable($value, $message = '')
949
    {
950
        static::isIterable($value);
951
952
        foreach ($value as $entry) {
953
            static::isCountable($entry, $message);
954
        }
955
    }
956
957
    /**
958
     * @psalm-pure
959
     * @psalm-assert iterable<countable|null> $value
960
     *
961
     * @param mixed  $value
962
     * @param string $message
963
     *
964
     * @throws InvalidArgumentException
965
     *
966
     * @return void
967
     */
968
    public static function allNullOrIsCountable($value, $message = '')
969
    {
970
        static::isIterable($value);
971
972
        foreach ($value as $entry) {
973
            null === $entry || static::isCountable($entry, $message);
974
        }
975
    }
976
977
    /**
978
     * @psalm-pure
979
     * @psalm-assert iterable|null $value
980
     *
981
     * @param mixed  $value
982
     * @param string $message
983
     *
984
     * @throws InvalidArgumentException
985
     *
986
     * @return void
987
     */
988
    public static function nullOrIsIterable($value, $message = '')
989
    {
990
        null === $value || static::isIterable($value, $message);
991
    }
992
993
    /**
994
     * @psalm-pure
995
     * @psalm-assert iterable<iterable> $value
996
     *
997
     * @param mixed  $value
998
     * @param string $message
999
     *
1000
     * @throws InvalidArgumentException
1001
     *
1002
     * @return void
1003
     */
1004
    public static function allIsIterable($value, $message = '')
1005
    {
1006
        static::isIterable($value);
1007
1008
        foreach ($value as $entry) {
1009
            static::isIterable($entry, $message);
1010
        }
1011
    }
1012
1013
    /**
1014
     * @psalm-pure
1015
     * @psalm-assert iterable<iterable|null> $value
1016
     *
1017
     * @param mixed  $value
1018
     * @param string $message
1019
     *
1020
     * @throws InvalidArgumentException
1021
     *
1022
     * @return void
1023
     */
1024
    public static function allNullOrIsIterable($value, $message = '')
1025
    {
1026
        static::isIterable($value);
1027
1028
        foreach ($value as $entry) {
1029
            null === $entry || static::isIterable($entry, $message);
1030
        }
1031
    }
1032
1033
    /**
1034
     * @psalm-pure
1035
     * @psalm-template ExpectedType of object
1036
     * @psalm-param class-string<ExpectedType> $class
1037
     * @psalm-assert ExpectedType|null $value
1038
     *
1039
     * @param mixed         $value
1040
     * @param string|object $class
1041
     * @param string        $message
1042
     *
1043
     * @throws InvalidArgumentException
1044
     *
1045
     * @return void
1046
     */
1047
    public static function nullOrIsInstanceOf($value, $class, $message = '')
1048
    {
1049
        null === $value || static::isInstanceOf($value, $class, $message);
1050
    }
1051
1052
    /**
1053
     * @psalm-pure
1054
     * @psalm-template ExpectedType of object
1055
     * @psalm-param class-string<ExpectedType> $class
1056
     * @psalm-assert iterable<ExpectedType> $value
1057
     *
1058
     * @param mixed         $value
1059
     * @param string|object $class
1060
     * @param string        $message
1061
     *
1062
     * @throws InvalidArgumentException
1063
     *
1064
     * @return void
1065
     */
1066
    public static function allIsInstanceOf($value, $class, $message = '')
1067
    {
1068
        static::isIterable($value);
1069
1070
        foreach ($value as $entry) {
1071
            static::isInstanceOf($entry, $class, $message);
1072
        }
1073
    }
1074
1075
    /**
1076
     * @psalm-pure
1077
     * @psalm-template ExpectedType of object
1078
     * @psalm-param class-string<ExpectedType> $class
1079
     * @psalm-assert iterable<ExpectedType|null> $value
1080
     *
1081
     * @param mixed         $value
1082
     * @param string|object $class
1083
     * @param string        $message
1084
     *
1085
     * @throws InvalidArgumentException
1086
     *
1087
     * @return void
1088
     */
1089
    public static function allNullOrIsInstanceOf($value, $class, $message = '')
1090
    {
1091
        static::isIterable($value);
1092
1093
        foreach ($value as $entry) {
1094
            null === $entry || static::isInstanceOf($entry, $class, $message);
1095
        }
1096
    }
1097
1098
    /**
1099
     * @psalm-pure
1100
     * @psalm-template ExpectedType of object
1101
     * @psalm-param class-string<ExpectedType> $class
1102
     *
1103
     * @param mixed         $value
1104
     * @param string|object $class
1105
     * @param string        $message
1106
     *
1107
     * @throws InvalidArgumentException
1108
     *
1109
     * @return void
1110
     */
1111
    public static function nullOrNotInstanceOf($value, $class, $message = '')
1112
    {
1113
        null === $value || static::notInstanceOf($value, $class, $message);
1114
    }
1115
1116
    /**
1117
     * @psalm-pure
1118
     * @psalm-template ExpectedType of object
1119
     * @psalm-param class-string<ExpectedType> $class
1120
     *
1121
     * @param mixed         $value
1122
     * @param string|object $class
1123
     * @param string        $message
1124
     *
1125
     * @throws InvalidArgumentException
1126
     *
1127
     * @return void
1128
     */
1129
    public static function allNotInstanceOf($value, $class, $message = '')
1130
    {
1131
        static::isIterable($value);
1132
1133
        foreach ($value as $entry) {
1134
            static::notInstanceOf($entry, $class, $message);
1135
        }
1136
    }
1137
1138
    /**
1139
     * @psalm-pure
1140
     * @psalm-template ExpectedType of object
1141
     * @psalm-param class-string<ExpectedType> $class
1142
     * @psalm-assert iterable<!ExpectedType|null> $value
1143
     *
1144
     * @param mixed         $value
1145
     * @param string|object $class
1146
     * @param string        $message
1147
     *
1148
     * @throws InvalidArgumentException
1149
     *
1150
     * @return void
1151
     */
1152
    public static function allNullOrNotInstanceOf($value, $class, $message = '')
1153
    {
1154
        static::isIterable($value);
1155
1156
        foreach ($value as $entry) {
1157
            null === $entry || static::notInstanceOf($entry, $class, $message);
1158
        }
1159
    }
1160
1161
    /**
1162
     * @psalm-pure
1163
     * @psalm-param array<class-string> $classes
1164
     *
1165
     * @param mixed                $value
1166
     * @param array<object|string> $classes
1167
     * @param string               $message
1168
     *
1169
     * @throws InvalidArgumentException
1170
     *
1171
     * @return void
1172
     */
1173
    public static function nullOrIsInstanceOfAny($value, $classes, $message = '')
1174
    {
1175
        null === $value || static::isInstanceOfAny($value, $classes, $message);
1176
    }
1177
1178
    /**
1179
     * @psalm-pure
1180
     * @psalm-param array<class-string> $classes
1181
     *
1182
     * @param mixed                $value
1183
     * @param array<object|string> $classes
1184
     * @param string               $message
1185
     *
1186
     * @throws InvalidArgumentException
1187
     *
1188
     * @return void
1189
     */
1190
    public static function allIsInstanceOfAny($value, $classes, $message = '')
1191
    {
1192
        static::isIterable($value);
1193
1194
        foreach ($value as $entry) {
1195
            static::isInstanceOfAny($entry, $classes, $message);
1196
        }
1197
    }
1198
1199
    /**
1200
     * @psalm-pure
1201
     * @psalm-param array<class-string> $classes
1202
     *
1203
     * @param mixed                $value
1204
     * @param array<object|string> $classes
1205
     * @param string               $message
1206
     *
1207
     * @throws InvalidArgumentException
1208
     *
1209
     * @return void
1210
     */
1211
    public static function allNullOrIsInstanceOfAny($value, $classes, $message = '')
1212
    {
1213
        static::isIterable($value);
1214
1215
        foreach ($value as $entry) {
1216
            null === $entry || static::isInstanceOfAny($entry, $classes, $message);
1217
        }
1218
    }
1219
1220
    /**
1221
     * @psalm-pure
1222
     * @psalm-template ExpectedType of object
1223
     * @psalm-param class-string<ExpectedType> $class
1224
     * @psalm-assert ExpectedType|class-string<ExpectedType>|null $value
1225
     *
1226
     * @param object|string|null $value
1227
     * @param string             $class
1228
     * @param string             $message
1229
     *
1230
     * @throws InvalidArgumentException
1231
     *
1232
     * @return void
1233
     */
1234
    public static function nullOrIsAOf($value, $class, $message = '')
1235
    {
1236
        null === $value || static::isAOf($value, $class, $message);
1237
    }
1238
1239
    /**
1240
     * @psalm-pure
1241
     * @psalm-template ExpectedType of object
1242
     * @psalm-param class-string<ExpectedType> $class
1243
     * @psalm-assert iterable<ExpectedType|class-string<ExpectedType>> $value
1244
     *
1245
     * @param iterable<object|string> $value
1246
     * @param string                  $class
1247
     * @param string                  $message
1248
     *
1249
     * @throws InvalidArgumentException
1250
     *
1251
     * @return void
1252
     */
1253
    public static function allIsAOf($value, $class, $message = '')
1254
    {
1255
        static::isIterable($value);
1256
1257
        foreach ($value as $entry) {
1258
            static::isAOf($entry, $class, $message);
1259
        }
1260
    }
1261
1262
    /**
1263
     * @psalm-pure
1264
     * @psalm-template ExpectedType of object
1265
     * @psalm-param class-string<ExpectedType> $class
1266
     * @psalm-assert iterable<ExpectedType|class-string<ExpectedType>|null> $value
1267
     *
1268
     * @param iterable<object|string|null> $value
1269
     * @param string                       $class
1270
     * @param string                       $message
1271
     *
1272
     * @throws InvalidArgumentException
1273
     *
1274
     * @return void
1275
     */
1276
    public static function allNullOrIsAOf($value, $class, $message = '')
1277
    {
1278
        static::isIterable($value);
1279
1280
        foreach ($value as $entry) {
1281
            null === $entry || static::isAOf($entry, $class, $message);
1282
        }
1283
    }
1284
1285
    /**
1286
     * @psalm-pure
1287
     * @psalm-template UnexpectedType of object
1288
     * @psalm-param class-string<UnexpectedType> $class
1289
     *
1290
     * @param object|string|null $value
1291
     * @param string             $class
1292
     * @param string             $message
1293
     *
1294
     * @throws InvalidArgumentException
1295
     *
1296
     * @return void
1297
     */
1298
    public static function nullOrIsNotA($value, $class, $message = '')
1299
    {
1300
        null === $value || static::isNotA($value, $class, $message);
1301
    }
1302
1303
    /**
1304
     * @psalm-pure
1305
     * @psalm-template UnexpectedType of object
1306
     * @psalm-param class-string<UnexpectedType> $class
1307
     *
1308
     * @param iterable<object|string> $value
1309
     * @param string                  $class
1310
     * @param string                  $message
1311
     *
1312
     * @throws InvalidArgumentException
1313
     *
1314
     * @return void
1315
     */
1316
    public static function allIsNotA($value, $class, $message = '')
1317
    {
1318
        static::isIterable($value);
1319
1320
        foreach ($value as $entry) {
1321
            static::isNotA($entry, $class, $message);
1322
        }
1323
    }
1324
1325
    /**
1326
     * @psalm-pure
1327
     * @psalm-template UnexpectedType of object
1328
     * @psalm-param class-string<UnexpectedType> $class
1329
     * @psalm-assert iterable<!UnexpectedType|null> $value
1330
     * @psalm-assert iterable<!class-string<UnexpectedType>|null> $value
1331
     *
1332
     * @param iterable<object|string|null> $value
1333
     * @param string                       $class
1334
     * @param string                       $message
1335
     *
1336
     * @throws InvalidArgumentException
1337
     *
1338
     * @return void
1339
     */
1340
    public static function allNullOrIsNotA($value, $class, $message = '')
1341
    {
1342
        static::isIterable($value);
1343
1344
        foreach ($value as $entry) {
1345
            null === $entry || static::isNotA($entry, $class, $message);
1346
        }
1347
    }
1348
1349
    /**
1350
     * @psalm-pure
1351
     * @psalm-param array<class-string> $classes
1352
     *
1353
     * @param object|string|null $value
1354
     * @param string[]           $classes
1355
     * @param string             $message
1356
     *
1357
     * @throws InvalidArgumentException
1358
     *
1359
     * @return void
1360
     */
1361
    public static function nullOrIsAnyOf($value, $classes, $message = '')
1362
    {
1363
        null === $value || static::isAnyOf($value, $classes, $message);
1364
    }
1365
1366
    /**
1367
     * @psalm-pure
1368
     * @psalm-param array<class-string> $classes
1369
     *
1370
     * @param iterable<object|string> $value
1371
     * @param string[]                $classes
1372
     * @param string                  $message
1373
     *
1374
     * @throws InvalidArgumentException
1375
     *
1376
     * @return void
1377
     */
1378
    public static function allIsAnyOf($value, $classes, $message = '')
1379
    {
1380
        static::isIterable($value);
1381
1382
        foreach ($value as $entry) {
1383
            static::isAnyOf($entry, $classes, $message);
1384
        }
1385
    }
1386
1387
    /**
1388
     * @psalm-pure
1389
     * @psalm-param array<class-string> $classes
1390
     *
1391
     * @param iterable<object|string|null> $value
1392
     * @param string[]                     $classes
1393
     * @param string                       $message
1394
     *
1395
     * @throws InvalidArgumentException
1396
     *
1397
     * @return void
1398
     */
1399
    public static function allNullOrIsAnyOf($value, $classes, $message = '')
1400
    {
1401
        static::isIterable($value);
1402
1403
        foreach ($value as $entry) {
1404
            null === $entry || static::isAnyOf($entry, $classes, $message);
1405
        }
1406
    }
1407
1408
    /**
1409
     * @psalm-pure
1410
     * @psalm-assert empty $value
1411
     *
1412
     * @param mixed  $value
1413
     * @param string $message
1414
     *
1415
     * @throws InvalidArgumentException
1416
     *
1417
     * @return void
1418
     */
1419
    public static function nullOrIsEmpty($value, $message = '')
1420
    {
1421
        null === $value || static::isEmpty($value, $message);
1422
    }
1423
1424
    /**
1425
     * @psalm-pure
1426
     * @psalm-assert iterable<empty> $value
1427
     *
1428
     * @param mixed  $value
1429
     * @param string $message
1430
     *
1431
     * @throws InvalidArgumentException
1432
     *
1433
     * @return void
1434
     */
1435
    public static function allIsEmpty($value, $message = '')
1436
    {
1437
        static::isIterable($value);
1438
1439
        foreach ($value as $entry) {
1440
            static::isEmpty($entry, $message);
1441
        }
1442
    }
1443
1444
    /**
1445
     * @psalm-pure
1446
     * @psalm-assert iterable<empty|null> $value
1447
     *
1448
     * @param mixed  $value
1449
     * @param string $message
1450
     *
1451
     * @throws InvalidArgumentException
1452
     *
1453
     * @return void
1454
     */
1455
    public static function allNullOrIsEmpty($value, $message = '')
1456
    {
1457
        static::isIterable($value);
1458
1459
        foreach ($value as $entry) {
1460
            null === $entry || static::isEmpty($entry, $message);
1461
        }
1462
    }
1463
1464
    /**
1465
     * @psalm-pure
1466
     *
1467
     * @param mixed  $value
1468
     * @param string $message
1469
     *
1470
     * @throws InvalidArgumentException
1471
     *
1472
     * @return void
1473
     */
1474
    public static function nullOrNotEmpty($value, $message = '')
1475
    {
1476
        null === $value || static::notEmpty($value, $message);
1477
    }
1478
1479
    /**
1480
     * @psalm-pure
1481
     *
1482
     * @param mixed  $value
1483
     * @param string $message
1484
     *
1485
     * @throws InvalidArgumentException
1486
     *
1487
     * @return void
1488
     */
1489
    public static function allNotEmpty($value, $message = '')
1490
    {
1491
        static::isIterable($value);
1492
1493
        foreach ($value as $entry) {
1494
            static::notEmpty($entry, $message);
1495
        }
1496
    }
1497
1498
    /**
1499
     * @psalm-pure
1500
     * @psalm-assert iterable<!empty|null> $value
1501
     *
1502
     * @param mixed  $value
1503
     * @param string $message
1504
     *
1505
     * @throws InvalidArgumentException
1506
     *
1507
     * @return void
1508
     */
1509
    public static function allNullOrNotEmpty($value, $message = '')
1510
    {
1511
        static::isIterable($value);
1512
1513
        foreach ($value as $entry) {
1514
            null === $entry || static::notEmpty($entry, $message);
1515
        }
1516
    }
1517
1518
    /**
1519
     * @psalm-pure
1520
     * @psalm-assert iterable<null> $value
1521
     *
1522
     * @param mixed  $value
1523
     * @param string $message
1524
     *
1525
     * @throws InvalidArgumentException
1526
     *
1527
     * @return void
1528
     */
1529
    public static function allNull($value, $message = '')
1530
    {
1531
        static::isIterable($value);
1532
1533
        foreach ($value as $entry) {
1534
            static::null($entry, $message);
1535
        }
1536
    }
1537
1538
    /**
1539
     * @psalm-pure
1540
     *
1541
     * @param mixed  $value
1542
     * @param string $message
1543
     *
1544
     * @throws InvalidArgumentException
1545
     *
1546
     * @return void
1547
     */
1548
    public static function allNotNull($value, $message = '')
1549
    {
1550
        static::isIterable($value);
1551
1552
        foreach ($value as $entry) {
1553
            static::notNull($entry, $message);
1554
        }
1555
    }
1556
1557
    /**
1558
     * @psalm-pure
1559
     * @psalm-assert true|null $value
1560
     *
1561
     * @param mixed  $value
1562
     * @param string $message
1563
     *
1564
     * @throws InvalidArgumentException
1565
     *
1566
     * @return void
1567
     */
1568
    public static function nullOrTrue($value, $message = '')
1569
    {
1570
        null === $value || static::true($value, $message);
1571
    }
1572
1573
    /**
1574
     * @psalm-pure
1575
     * @psalm-assert iterable<true> $value
1576
     *
1577
     * @param mixed  $value
1578
     * @param string $message
1579
     *
1580
     * @throws InvalidArgumentException
1581
     *
1582
     * @return void
1583
     */
1584
    public static function allTrue($value, $message = '')
1585
    {
1586
        static::isIterable($value);
1587
1588
        foreach ($value as $entry) {
1589
            static::true($entry, $message);
1590
        }
1591
    }
1592
1593
    /**
1594
     * @psalm-pure
1595
     * @psalm-assert iterable<true|null> $value
1596
     *
1597
     * @param mixed  $value
1598
     * @param string $message
1599
     *
1600
     * @throws InvalidArgumentException
1601
     *
1602
     * @return void
1603
     */
1604
    public static function allNullOrTrue($value, $message = '')
1605
    {
1606
        static::isIterable($value);
1607
1608
        foreach ($value as $entry) {
1609
            null === $entry || static::true($entry, $message);
1610
        }
1611
    }
1612
1613
    /**
1614
     * @psalm-pure
1615
     * @psalm-assert false|null $value
1616
     *
1617
     * @param mixed  $value
1618
     * @param string $message
1619
     *
1620
     * @throws InvalidArgumentException
1621
     *
1622
     * @return void
1623
     */
1624
    public static function nullOrFalse($value, $message = '')
1625
    {
1626
        null === $value || static::false($value, $message);
1627
    }
1628
1629
    /**
1630
     * @psalm-pure
1631
     * @psalm-assert iterable<false> $value
1632
     *
1633
     * @param mixed  $value
1634
     * @param string $message
1635
     *
1636
     * @throws InvalidArgumentException
1637
     *
1638
     * @return void
1639
     */
1640
    public static function allFalse($value, $message = '')
1641
    {
1642
        static::isIterable($value);
1643
1644
        foreach ($value as $entry) {
1645
            static::false($entry, $message);
1646
        }
1647
    }
1648
1649
    /**
1650
     * @psalm-pure
1651
     * @psalm-assert iterable<false|null> $value
1652
     *
1653
     * @param mixed  $value
1654
     * @param string $message
1655
     *
1656
     * @throws InvalidArgumentException
1657
     *
1658
     * @return void
1659
     */
1660
    public static function allNullOrFalse($value, $message = '')
1661
    {
1662
        static::isIterable($value);
1663
1664
        foreach ($value as $entry) {
1665
            null === $entry || static::false($entry, $message);
1666
        }
1667
    }
1668
1669
    /**
1670
     * @psalm-pure
1671
     *
1672
     * @param mixed  $value
1673
     * @param string $message
1674
     *
1675
     * @throws InvalidArgumentException
1676
     *
1677
     * @return void
1678
     */
1679
    public static function nullOrNotFalse($value, $message = '')
1680
    {
1681
        null === $value || static::notFalse($value, $message);
1682
    }
1683
1684
    /**
1685
     * @psalm-pure
1686
     *
1687
     * @param mixed  $value
1688
     * @param string $message
1689
     *
1690
     * @throws InvalidArgumentException
1691
     *
1692
     * @return void
1693
     */
1694
    public static function allNotFalse($value, $message = '')
1695
    {
1696
        static::isIterable($value);
1697
1698
        foreach ($value as $entry) {
1699
            static::notFalse($entry, $message);
1700
        }
1701
    }
1702
1703
    /**
1704
     * @psalm-pure
1705
     * @psalm-assert iterable<!false|null> $value
1706
     *
1707
     * @param mixed  $value
1708
     * @param string $message
1709
     *
1710
     * @throws InvalidArgumentException
1711
     *
1712
     * @return void
1713
     */
1714
    public static function allNullOrNotFalse($value, $message = '')
1715
    {
1716
        static::isIterable($value);
1717
1718
        foreach ($value as $entry) {
1719
            null === $entry || static::notFalse($entry, $message);
1720
        }
1721
    }
1722
1723
    /**
1724
     * @param mixed  $value
1725
     * @param string $message
1726
     *
1727
     * @throws InvalidArgumentException
1728
     *
1729
     * @return void
1730
     */
1731
    public static function nullOrIp($value, $message = '')
1732
    {
1733
        null === $value || static::ip($value, $message);
1734
    }
1735
1736
    /**
1737
     * @param mixed  $value
1738
     * @param string $message
1739
     *
1740
     * @throws InvalidArgumentException
1741
     *
1742
     * @return void
1743
     */
1744
    public static function allIp($value, $message = '')
1745
    {
1746
        static::isIterable($value);
1747
1748
        foreach ($value as $entry) {
1749
            static::ip($entry, $message);
1750
        }
1751
    }
1752
1753
    /**
1754
     * @param mixed  $value
1755
     * @param string $message
1756
     *
1757
     * @throws InvalidArgumentException
1758
     *
1759
     * @return void
1760
     */
1761
    public static function allNullOrIp($value, $message = '')
1762
    {
1763
        static::isIterable($value);
1764
1765
        foreach ($value as $entry) {
1766
            null === $entry || static::ip($entry, $message);
1767
        }
1768
    }
1769
1770
    /**
1771
     * @param mixed  $value
1772
     * @param string $message
1773
     *
1774
     * @throws InvalidArgumentException
1775
     *
1776
     * @return void
1777
     */
1778
    public static function nullOrIpv4($value, $message = '')
1779
    {
1780
        null === $value || static::ipv4($value, $message);
1781
    }
1782
1783
    /**
1784
     * @param mixed  $value
1785
     * @param string $message
1786
     *
1787
     * @throws InvalidArgumentException
1788
     *
1789
     * @return void
1790
     */
1791
    public static function allIpv4($value, $message = '')
1792
    {
1793
        static::isIterable($value);
1794
1795
        foreach ($value as $entry) {
1796
            static::ipv4($entry, $message);
1797
        }
1798
    }
1799
1800
    /**
1801
     * @param mixed  $value
1802
     * @param string $message
1803
     *
1804
     * @throws InvalidArgumentException
1805
     *
1806
     * @return void
1807
     */
1808
    public static function allNullOrIpv4($value, $message = '')
1809
    {
1810
        static::isIterable($value);
1811
1812
        foreach ($value as $entry) {
1813
            null === $entry || static::ipv4($entry, $message);
1814
        }
1815
    }
1816
1817
    /**
1818
     * @param mixed  $value
1819
     * @param string $message
1820
     *
1821
     * @throws InvalidArgumentException
1822
     *
1823
     * @return void
1824
     */
1825
    public static function nullOrIpv6($value, $message = '')
1826
    {
1827
        null === $value || static::ipv6($value, $message);
1828
    }
1829
1830
    /**
1831
     * @param mixed  $value
1832
     * @param string $message
1833
     *
1834
     * @throws InvalidArgumentException
1835
     *
1836
     * @return void
1837
     */
1838
    public static function allIpv6($value, $message = '')
1839
    {
1840
        static::isIterable($value);
1841
1842
        foreach ($value as $entry) {
1843
            static::ipv6($entry, $message);
1844
        }
1845
    }
1846
1847
    /**
1848
     * @param mixed  $value
1849
     * @param string $message
1850
     *
1851
     * @throws InvalidArgumentException
1852
     *
1853
     * @return void
1854
     */
1855
    public static function allNullOrIpv6($value, $message = '')
1856
    {
1857
        static::isIterable($value);
1858
1859
        foreach ($value as $entry) {
1860
            null === $entry || static::ipv6($entry, $message);
1861
        }
1862
    }
1863
1864
    /**
1865
     * @param mixed  $value
1866
     * @param string $message
1867
     *
1868
     * @throws InvalidArgumentException
1869
     *
1870
     * @return void
1871
     */
1872
    public static function nullOrEmail($value, $message = '')
1873
    {
1874
        null === $value || static::email($value, $message);
1875
    }
1876
1877
    /**
1878
     * @param mixed  $value
1879
     * @param string $message
1880
     *
1881
     * @throws InvalidArgumentException
1882
     *
1883
     * @return void
1884
     */
1885
    public static function allEmail($value, $message = '')
1886
    {
1887
        static::isIterable($value);
1888
1889
        foreach ($value as $entry) {
1890
            static::email($entry, $message);
1891
        }
1892
    }
1893
1894
    /**
1895
     * @param mixed  $value
1896
     * @param string $message
1897
     *
1898
     * @throws InvalidArgumentException
1899
     *
1900
     * @return void
1901
     */
1902
    public static function allNullOrEmail($value, $message = '')
1903
    {
1904
        static::isIterable($value);
1905
1906
        foreach ($value as $entry) {
1907
            null === $entry || static::email($entry, $message);
1908
        }
1909
    }
1910
1911
    /**
1912
     * @param array|null $values
1913
     * @param string     $message
1914
     *
1915
     * @throws InvalidArgumentException
1916
     *
1917
     * @return void
1918
     */
1919
    public static function nullOrUniqueValues($values, $message = '')
1920
    {
1921
        null === $values || static::uniqueValues($values, $message);
1922
    }
1923
1924
    /**
1925
     * @param iterable<array> $values
1926
     * @param string          $message
1927
     *
1928
     * @throws InvalidArgumentException
1929
     *
1930
     * @return void
1931
     */
1932
    public static function allUniqueValues($values, $message = '')
1933
    {
1934
        static::isIterable($values);
1935
1936
        foreach ($values as $entry) {
1937
            static::uniqueValues($entry, $message);
1938
        }
1939
    }
1940
1941
    /**
1942
     * @param iterable<array|null> $values
1943
     * @param string               $message
1944
     *
1945
     * @throws InvalidArgumentException
1946
     *
1947
     * @return void
1948
     */
1949
    public static function allNullOrUniqueValues($values, $message = '')
1950
    {
1951
        static::isIterable($values);
1952
1953
        foreach ($values as $entry) {
1954
            null === $entry || static::uniqueValues($entry, $message);
1955
        }
1956
    }
1957
1958
    /**
1959
     * @param mixed  $value
1960
     * @param mixed  $expect
1961
     * @param string $message
1962
     *
1963
     * @throws InvalidArgumentException
1964
     *
1965
     * @return void
1966
     */
1967
    public static function nullOrEq($value, $expect, $message = '')
1968
    {
1969
        null === $value || static::eq($value, $expect, $message);
1970
    }
1971
1972
    /**
1973
     * @param mixed  $value
1974
     * @param mixed  $expect
1975
     * @param string $message
1976
     *
1977
     * @throws InvalidArgumentException
1978
     *
1979
     * @return void
1980
     */
1981
    public static function allEq($value, $expect, $message = '')
1982
    {
1983
        static::isIterable($value);
1984
1985
        foreach ($value as $entry) {
1986
            static::eq($entry, $expect, $message);
1987
        }
1988
    }
1989
1990
    /**
1991
     * @param mixed  $value
1992
     * @param mixed  $expect
1993
     * @param string $message
1994
     *
1995
     * @throws InvalidArgumentException
1996
     *
1997
     * @return void
1998
     */
1999
    public static function allNullOrEq($value, $expect, $message = '')
2000
    {
2001
        static::isIterable($value);
2002
2003
        foreach ($value as $entry) {
2004
            null === $entry || static::eq($entry, $expect, $message);
2005
        }
2006
    }
2007
2008
    /**
2009
     * @param mixed  $value
2010
     * @param mixed  $expect
2011
     * @param string $message
2012
     *
2013
     * @throws InvalidArgumentException
2014
     *
2015
     * @return void
2016
     */
2017
    public static function nullOrNotEq($value, $expect, $message = '')
2018
    {
2019
        null === $value || static::notEq($value, $expect, $message);
2020
    }
2021
2022
    /**
2023
     * @param mixed  $value
2024
     * @param mixed  $expect
2025
     * @param string $message
2026
     *
2027
     * @throws InvalidArgumentException
2028
     *
2029
     * @return void
2030
     */
2031
    public static function allNotEq($value, $expect, $message = '')
2032
    {
2033
        static::isIterable($value);
2034
2035
        foreach ($value as $entry) {
2036
            static::notEq($entry, $expect, $message);
2037
        }
2038
    }
2039
2040
    /**
2041
     * @param mixed  $value
2042
     * @param mixed  $expect
2043
     * @param string $message
2044
     *
2045
     * @throws InvalidArgumentException
2046
     *
2047
     * @return void
2048
     */
2049
    public static function allNullOrNotEq($value, $expect, $message = '')
2050
    {
2051
        static::isIterable($value);
2052
2053
        foreach ($value as $entry) {
2054
            null === $entry || static::notEq($entry, $expect, $message);
2055
        }
2056
    }
2057
2058
    /**
2059
     * @psalm-pure
2060
     *
2061
     * @param mixed  $value
2062
     * @param mixed  $expect
2063
     * @param string $message
2064
     *
2065
     * @throws InvalidArgumentException
2066
     *
2067
     * @return void
2068
     */
2069
    public static function nullOrSame($value, $expect, $message = '')
2070
    {
2071
        null === $value || static::same($value, $expect, $message);
2072
    }
2073
2074
    /**
2075
     * @psalm-pure
2076
     *
2077
     * @param mixed  $value
2078
     * @param mixed  $expect
2079
     * @param string $message
2080
     *
2081
     * @throws InvalidArgumentException
2082
     *
2083
     * @return void
2084
     */
2085
    public static function allSame($value, $expect, $message = '')
2086
    {
2087
        static::isIterable($value);
2088
2089
        foreach ($value as $entry) {
2090
            static::same($entry, $expect, $message);
2091
        }
2092
    }
2093
2094
    /**
2095
     * @psalm-pure
2096
     *
2097
     * @param mixed  $value
2098
     * @param mixed  $expect
2099
     * @param string $message
2100
     *
2101
     * @throws InvalidArgumentException
2102
     *
2103
     * @return void
2104
     */
2105
    public static function allNullOrSame($value, $expect, $message = '')
2106
    {
2107
        static::isIterable($value);
2108
2109
        foreach ($value as $entry) {
2110
            null === $entry || static::same($entry, $expect, $message);
2111
        }
2112
    }
2113
2114
    /**
2115
     * @psalm-pure
2116
     *
2117
     * @param mixed  $value
2118
     * @param mixed  $expect
2119
     * @param string $message
2120
     *
2121
     * @throws InvalidArgumentException
2122
     *
2123
     * @return void
2124
     */
2125
    public static function nullOrNotSame($value, $expect, $message = '')
2126
    {
2127
        null === $value || static::notSame($value, $expect, $message);
2128
    }
2129
2130
    /**
2131
     * @psalm-pure
2132
     *
2133
     * @param mixed  $value
2134
     * @param mixed  $expect
2135
     * @param string $message
2136
     *
2137
     * @throws InvalidArgumentException
2138
     *
2139
     * @return void
2140
     */
2141
    public static function allNotSame($value, $expect, $message = '')
2142
    {
2143
        static::isIterable($value);
2144
2145
        foreach ($value as $entry) {
2146
            static::notSame($entry, $expect, $message);
2147
        }
2148
    }
2149
2150
    /**
2151
     * @psalm-pure
2152
     *
2153
     * @param mixed  $value
2154
     * @param mixed  $expect
2155
     * @param string $message
2156
     *
2157
     * @throws InvalidArgumentException
2158
     *
2159
     * @return void
2160
     */
2161
    public static function allNullOrNotSame($value, $expect, $message = '')
2162
    {
2163
        static::isIterable($value);
2164
2165
        foreach ($value as $entry) {
2166
            null === $entry || static::notSame($entry, $expect, $message);
2167
        }
2168
    }
2169
2170
    /**
2171
     * @psalm-pure
2172
     *
2173
     * @param mixed  $value
2174
     * @param mixed  $limit
2175
     * @param string $message
2176
     *
2177
     * @throws InvalidArgumentException
2178
     *
2179
     * @return void
2180
     */
2181
    public static function nullOrGreaterThan($value, $limit, $message = '')
2182
    {
2183
        null === $value || static::greaterThan($value, $limit, $message);
2184
    }
2185
2186
    /**
2187
     * @psalm-pure
2188
     *
2189
     * @param mixed  $value
2190
     * @param mixed  $limit
2191
     * @param string $message
2192
     *
2193
     * @throws InvalidArgumentException
2194
     *
2195
     * @return void
2196
     */
2197
    public static function allGreaterThan($value, $limit, $message = '')
2198
    {
2199
        static::isIterable($value);
2200
2201
        foreach ($value as $entry) {
2202
            static::greaterThan($entry, $limit, $message);
2203
        }
2204
    }
2205
2206
    /**
2207
     * @psalm-pure
2208
     *
2209
     * @param mixed  $value
2210
     * @param mixed  $limit
2211
     * @param string $message
2212
     *
2213
     * @throws InvalidArgumentException
2214
     *
2215
     * @return void
2216
     */
2217
    public static function allNullOrGreaterThan($value, $limit, $message = '')
2218
    {
2219
        static::isIterable($value);
2220
2221
        foreach ($value as $entry) {
2222
            null === $entry || static::greaterThan($entry, $limit, $message);
2223
        }
2224
    }
2225
2226
    /**
2227
     * @psalm-pure
2228
     *
2229
     * @param mixed  $value
2230
     * @param mixed  $limit
2231
     * @param string $message
2232
     *
2233
     * @throws InvalidArgumentException
2234
     *
2235
     * @return void
2236
     */
2237
    public static function nullOrGreaterThanEq($value, $limit, $message = '')
2238
    {
2239
        null === $value || static::greaterThanEq($value, $limit, $message);
2240
    }
2241
2242
    /**
2243
     * @psalm-pure
2244
     *
2245
     * @param mixed  $value
2246
     * @param mixed  $limit
2247
     * @param string $message
2248
     *
2249
     * @throws InvalidArgumentException
2250
     *
2251
     * @return void
2252
     */
2253
    public static function allGreaterThanEq($value, $limit, $message = '')
2254
    {
2255
        static::isIterable($value);
2256
2257
        foreach ($value as $entry) {
2258
            static::greaterThanEq($entry, $limit, $message);
2259
        }
2260
    }
2261
2262
    /**
2263
     * @psalm-pure
2264
     *
2265
     * @param mixed  $value
2266
     * @param mixed  $limit
2267
     * @param string $message
2268
     *
2269
     * @throws InvalidArgumentException
2270
     *
2271
     * @return void
2272
     */
2273
    public static function allNullOrGreaterThanEq($value, $limit, $message = '')
2274
    {
2275
        static::isIterable($value);
2276
2277
        foreach ($value as $entry) {
2278
            null === $entry || static::greaterThanEq($entry, $limit, $message);
2279
        }
2280
    }
2281
2282
    /**
2283
     * @psalm-pure
2284
     *
2285
     * @param mixed  $value
2286
     * @param mixed  $limit
2287
     * @param string $message
2288
     *
2289
     * @throws InvalidArgumentException
2290
     *
2291
     * @return void
2292
     */
2293
    public static function nullOrLessThan($value, $limit, $message = '')
2294
    {
2295
        null === $value || static::lessThan($value, $limit, $message);
0 ignored issues
show
Bug introduced by
The method lessThan() does not exist on Webmozart\Assert\Mixin. Did you maybe mean allLessThan()? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

2295
        null === $value || static::/** @scrutinizer ignore-call */ lessThan($value, $limit, $message);

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
2296
    }
2297
2298
    /**
2299
     * @psalm-pure
2300
     *
2301
     * @param mixed  $value
2302
     * @param mixed  $limit
2303
     * @param string $message
2304
     *
2305
     * @throws InvalidArgumentException
2306
     *
2307
     * @return void
2308
     */
2309
    public static function allLessThan($value, $limit, $message = '')
2310
    {
2311
        static::isIterable($value);
2312
2313
        foreach ($value as $entry) {
2314
            static::lessThan($entry, $limit, $message);
2315
        }
2316
    }
2317
2318
    /**
2319
     * @psalm-pure
2320
     *
2321
     * @param mixed  $value
2322
     * @param mixed  $limit
2323
     * @param string $message
2324
     *
2325
     * @throws InvalidArgumentException
2326
     *
2327
     * @return void
2328
     */
2329
    public static function allNullOrLessThan($value, $limit, $message = '')
2330
    {
2331
        static::isIterable($value);
2332
2333
        foreach ($value as $entry) {
2334
            null === $entry || static::lessThan($entry, $limit, $message);
2335
        }
2336
    }
2337
2338
    /**
2339
     * @psalm-pure
2340
     *
2341
     * @param mixed  $value
2342
     * @param mixed  $limit
2343
     * @param string $message
2344
     *
2345
     * @throws InvalidArgumentException
2346
     *
2347
     * @return void
2348
     */
2349
    public static function nullOrLessThanEq($value, $limit, $message = '')
2350
    {
2351
        null === $value || static::lessThanEq($value, $limit, $message);
0 ignored issues
show
Bug introduced by
The method lessThanEq() does not exist on Webmozart\Assert\Mixin. Did you maybe mean allLessThanEq()? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

2351
        null === $value || static::/** @scrutinizer ignore-call */ lessThanEq($value, $limit, $message);

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
2352
    }
2353
2354
    /**
2355
     * @psalm-pure
2356
     *
2357
     * @param mixed  $value
2358
     * @param mixed  $limit
2359
     * @param string $message
2360
     *
2361
     * @throws InvalidArgumentException
2362
     *
2363
     * @return void
2364
     */
2365
    public static function allLessThanEq($value, $limit, $message = '')
2366
    {
2367
        static::isIterable($value);
2368
2369
        foreach ($value as $entry) {
2370
            static::lessThanEq($entry, $limit, $message);
2371
        }
2372
    }
2373
2374
    /**
2375
     * @psalm-pure
2376
     *
2377
     * @param mixed  $value
2378
     * @param mixed  $limit
2379
     * @param string $message
2380
     *
2381
     * @throws InvalidArgumentException
2382
     *
2383
     * @return void
2384
     */
2385
    public static function allNullOrLessThanEq($value, $limit, $message = '')
2386
    {
2387
        static::isIterable($value);
2388
2389
        foreach ($value as $entry) {
2390
            null === $entry || static::lessThanEq($entry, $limit, $message);
2391
        }
2392
    }
2393
2394
    /**
2395
     * @psalm-pure
2396
     *
2397
     * @param mixed  $value
2398
     * @param mixed  $min
2399
     * @param mixed  $max
2400
     * @param string $message
2401
     *
2402
     * @throws InvalidArgumentException
2403
     *
2404
     * @return void
2405
     */
2406
    public static function nullOrRange($value, $min, $max, $message = '')
2407
    {
2408
        null === $value || static::range($value, $min, $max, $message);
2409
    }
2410
2411
    /**
2412
     * @psalm-pure
2413
     *
2414
     * @param mixed  $value
2415
     * @param mixed  $min
2416
     * @param mixed  $max
2417
     * @param string $message
2418
     *
2419
     * @throws InvalidArgumentException
2420
     *
2421
     * @return void
2422
     */
2423
    public static function allRange($value, $min, $max, $message = '')
2424
    {
2425
        static::isIterable($value);
2426
2427
        foreach ($value as $entry) {
2428
            static::range($entry, $min, $max, $message);
2429
        }
2430
    }
2431
2432
    /**
2433
     * @psalm-pure
2434
     *
2435
     * @param mixed  $value
2436
     * @param mixed  $min
2437
     * @param mixed  $max
2438
     * @param string $message
2439
     *
2440
     * @throws InvalidArgumentException
2441
     *
2442
     * @return void
2443
     */
2444
    public static function allNullOrRange($value, $min, $max, $message = '')
2445
    {
2446
        static::isIterable($value);
2447
2448
        foreach ($value as $entry) {
2449
            null === $entry || static::range($entry, $min, $max, $message);
2450
        }
2451
    }
2452
2453
    /**
2454
     * @psalm-pure
2455
     *
2456
     * @param mixed  $value
2457
     * @param array  $values
2458
     * @param string $message
2459
     *
2460
     * @throws InvalidArgumentException
2461
     *
2462
     * @return void
2463
     */
2464
    public static function nullOrOneOf($value, $values, $message = '')
2465
    {
2466
        null === $value || static::oneOf($value, $values, $message);
2467
    }
2468
2469
    /**
2470
     * @psalm-pure
2471
     *
2472
     * @param mixed  $value
2473
     * @param array  $values
2474
     * @param string $message
2475
     *
2476
     * @throws InvalidArgumentException
2477
     *
2478
     * @return void
2479
     */
2480
    public static function allOneOf($value, $values, $message = '')
2481
    {
2482
        static::isIterable($value);
2483
2484
        foreach ($value as $entry) {
2485
            static::oneOf($entry, $values, $message);
2486
        }
2487
    }
2488
2489
    /**
2490
     * @psalm-pure
2491
     *
2492
     * @param mixed  $value
2493
     * @param array  $values
2494
     * @param string $message
2495
     *
2496
     * @throws InvalidArgumentException
2497
     *
2498
     * @return void
2499
     */
2500
    public static function allNullOrOneOf($value, $values, $message = '')
2501
    {
2502
        static::isIterable($value);
2503
2504
        foreach ($value as $entry) {
2505
            null === $entry || static::oneOf($entry, $values, $message);
2506
        }
2507
    }
2508
2509
    /**
2510
     * @psalm-pure
2511
     *
2512
     * @param mixed  $value
2513
     * @param array  $values
2514
     * @param string $message
2515
     *
2516
     * @throws InvalidArgumentException
2517
     *
2518
     * @return void
2519
     */
2520
    public static function nullOrInArray($value, $values, $message = '')
2521
    {
2522
        null === $value || static::inArray($value, $values, $message);
2523
    }
2524
2525
    /**
2526
     * @psalm-pure
2527
     *
2528
     * @param mixed  $value
2529
     * @param array  $values
2530
     * @param string $message
2531
     *
2532
     * @throws InvalidArgumentException
2533
     *
2534
     * @return void
2535
     */
2536
    public static function allInArray($value, $values, $message = '')
2537
    {
2538
        static::isIterable($value);
2539
2540
        foreach ($value as $entry) {
2541
            static::inArray($entry, $values, $message);
2542
        }
2543
    }
2544
2545
    /**
2546
     * @psalm-pure
2547
     *
2548
     * @param mixed  $value
2549
     * @param array  $values
2550
     * @param string $message
2551
     *
2552
     * @throws InvalidArgumentException
2553
     *
2554
     * @return void
2555
     */
2556
    public static function allNullOrInArray($value, $values, $message = '')
2557
    {
2558
        static::isIterable($value);
2559
2560
        foreach ($value as $entry) {
2561
            null === $entry || static::inArray($entry, $values, $message);
2562
        }
2563
    }
2564
2565
    /**
2566
     * @psalm-pure
2567
     *
2568
     * @param string|null $value
2569
     * @param string      $subString
2570
     * @param string      $message
2571
     *
2572
     * @throws InvalidArgumentException
2573
     *
2574
     * @return void
2575
     */
2576
    public static function nullOrContains($value, $subString, $message = '')
2577
    {
2578
        null === $value || static::contains($value, $subString, $message);
2579
    }
2580
2581
    /**
2582
     * @psalm-pure
2583
     *
2584
     * @param iterable<string> $value
2585
     * @param string           $subString
2586
     * @param string           $message
2587
     *
2588
     * @throws InvalidArgumentException
2589
     *
2590
     * @return void
2591
     */
2592
    public static function allContains($value, $subString, $message = '')
2593
    {
2594
        static::isIterable($value);
2595
2596
        foreach ($value as $entry) {
2597
            static::contains($entry, $subString, $message);
2598
        }
2599
    }
2600
2601
    /**
2602
     * @psalm-pure
2603
     *
2604
     * @param iterable<string|null> $value
2605
     * @param string                $subString
2606
     * @param string                $message
2607
     *
2608
     * @throws InvalidArgumentException
2609
     *
2610
     * @return void
2611
     */
2612
    public static function allNullOrContains($value, $subString, $message = '')
2613
    {
2614
        static::isIterable($value);
2615
2616
        foreach ($value as $entry) {
2617
            null === $entry || static::contains($entry, $subString, $message);
2618
        }
2619
    }
2620
2621
    /**
2622
     * @psalm-pure
2623
     *
2624
     * @param string|null $value
2625
     * @param string      $subString
2626
     * @param string      $message
2627
     *
2628
     * @throws InvalidArgumentException
2629
     *
2630
     * @return void
2631
     */
2632
    public static function nullOrNotContains($value, $subString, $message = '')
2633
    {
2634
        null === $value || static::notContains($value, $subString, $message);
2635
    }
2636
2637
    /**
2638
     * @psalm-pure
2639
     *
2640
     * @param iterable<string> $value
2641
     * @param string           $subString
2642
     * @param string           $message
2643
     *
2644
     * @throws InvalidArgumentException
2645
     *
2646
     * @return void
2647
     */
2648
    public static function allNotContains($value, $subString, $message = '')
2649
    {
2650
        static::isIterable($value);
2651
2652
        foreach ($value as $entry) {
2653
            static::notContains($entry, $subString, $message);
2654
        }
2655
    }
2656
2657
    /**
2658
     * @psalm-pure
2659
     *
2660
     * @param iterable<string|null> $value
2661
     * @param string                $subString
2662
     * @param string                $message
2663
     *
2664
     * @throws InvalidArgumentException
2665
     *
2666
     * @return void
2667
     */
2668
    public static function allNullOrNotContains($value, $subString, $message = '')
2669
    {
2670
        static::isIterable($value);
2671
2672
        foreach ($value as $entry) {
2673
            null === $entry || static::notContains($entry, $subString, $message);
2674
        }
2675
    }
2676
2677
    /**
2678
     * @psalm-pure
2679
     *
2680
     * @param string|null $value
2681
     * @param string      $message
2682
     *
2683
     * @throws InvalidArgumentException
2684
     *
2685
     * @return void
2686
     */
2687
    public static function nullOrNotWhitespaceOnly($value, $message = '')
2688
    {
2689
        null === $value || static::notWhitespaceOnly($value, $message);
0 ignored issues
show
Bug introduced by
The method notWhitespaceOnly() does not exist on Webmozart\Assert\Mixin. Did you maybe mean allNotWhitespaceOnly()? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

2689
        null === $value || static::/** @scrutinizer ignore-call */ notWhitespaceOnly($value, $message);

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
2690
    }
2691
2692
    /**
2693
     * @psalm-pure
2694
     *
2695
     * @param iterable<string> $value
2696
     * @param string           $message
2697
     *
2698
     * @throws InvalidArgumentException
2699
     *
2700
     * @return void
2701
     */
2702
    public static function allNotWhitespaceOnly($value, $message = '')
2703
    {
2704
        static::isIterable($value);
2705
2706
        foreach ($value as $entry) {
2707
            static::notWhitespaceOnly($entry, $message);
2708
        }
2709
    }
2710
2711
    /**
2712
     * @psalm-pure
2713
     *
2714
     * @param iterable<string|null> $value
2715
     * @param string                $message
2716
     *
2717
     * @throws InvalidArgumentException
2718
     *
2719
     * @return void
2720
     */
2721
    public static function allNullOrNotWhitespaceOnly($value, $message = '')
2722
    {
2723
        static::isIterable($value);
2724
2725
        foreach ($value as $entry) {
2726
            null === $entry || static::notWhitespaceOnly($entry, $message);
2727
        }
2728
    }
2729
2730
    /**
2731
     * @psalm-pure
2732
     *
2733
     * @param string|null $value
2734
     * @param string      $prefix
2735
     * @param string      $message
2736
     *
2737
     * @throws InvalidArgumentException
2738
     *
2739
     * @return void
2740
     */
2741
    public static function nullOrStartsWith($value, $prefix, $message = '')
2742
    {
2743
        null === $value || static::startsWith($value, $prefix, $message);
2744
    }
2745
2746
    /**
2747
     * @psalm-pure
2748
     *
2749
     * @param iterable<string> $value
2750
     * @param string           $prefix
2751
     * @param string           $message
2752
     *
2753
     * @throws InvalidArgumentException
2754
     *
2755
     * @return void
2756
     */
2757
    public static function allStartsWith($value, $prefix, $message = '')
2758
    {
2759
        static::isIterable($value);
2760
2761
        foreach ($value as $entry) {
2762
            static::startsWith($entry, $prefix, $message);
2763
        }
2764
    }
2765
2766
    /**
2767
     * @psalm-pure
2768
     *
2769
     * @param iterable<string|null> $value
2770
     * @param string                $prefix
2771
     * @param string                $message
2772
     *
2773
     * @throws InvalidArgumentException
2774
     *
2775
     * @return void
2776
     */
2777
    public static function allNullOrStartsWith($value, $prefix, $message = '')
2778
    {
2779
        static::isIterable($value);
2780
2781
        foreach ($value as $entry) {
2782
            null === $entry || static::startsWith($entry, $prefix, $message);
2783
        }
2784
    }
2785
2786
    /**
2787
     * @psalm-pure
2788
     *
2789
     * @param string|null $value
2790
     * @param string      $prefix
2791
     * @param string      $message
2792
     *
2793
     * @throws InvalidArgumentException
2794
     *
2795
     * @return void
2796
     */
2797
    public static function nullOrNotStartsWith($value, $prefix, $message = '')
2798
    {
2799
        null === $value || static::notStartsWith($value, $prefix, $message);
2800
    }
2801
2802
    /**
2803
     * @psalm-pure
2804
     *
2805
     * @param iterable<string> $value
2806
     * @param string           $prefix
2807
     * @param string           $message
2808
     *
2809
     * @throws InvalidArgumentException
2810
     *
2811
     * @return void
2812
     */
2813
    public static function allNotStartsWith($value, $prefix, $message = '')
2814
    {
2815
        static::isIterable($value);
2816
2817
        foreach ($value as $entry) {
2818
            static::notStartsWith($entry, $prefix, $message);
2819
        }
2820
    }
2821
2822
    /**
2823
     * @psalm-pure
2824
     *
2825
     * @param iterable<string|null> $value
2826
     * @param string                $prefix
2827
     * @param string                $message
2828
     *
2829
     * @throws InvalidArgumentException
2830
     *
2831
     * @return void
2832
     */
2833
    public static function allNullOrNotStartsWith($value, $prefix, $message = '')
2834
    {
2835
        static::isIterable($value);
2836
2837
        foreach ($value as $entry) {
2838
            null === $entry || static::notStartsWith($entry, $prefix, $message);
2839
        }
2840
    }
2841
2842
    /**
2843
     * @psalm-pure
2844
     *
2845
     * @param mixed  $value
2846
     * @param string $message
2847
     *
2848
     * @throws InvalidArgumentException
2849
     *
2850
     * @return void
2851
     */
2852
    public static function nullOrStartsWithLetter($value, $message = '')
2853
    {
2854
        null === $value || static::startsWithLetter($value, $message);
2855
    }
2856
2857
    /**
2858
     * @psalm-pure
2859
     *
2860
     * @param mixed  $value
2861
     * @param string $message
2862
     *
2863
     * @throws InvalidArgumentException
2864
     *
2865
     * @return void
2866
     */
2867
    public static function allStartsWithLetter($value, $message = '')
2868
    {
2869
        static::isIterable($value);
2870
2871
        foreach ($value as $entry) {
2872
            static::startsWithLetter($entry, $message);
2873
        }
2874
    }
2875
2876
    /**
2877
     * @psalm-pure
2878
     *
2879
     * @param mixed  $value
2880
     * @param string $message
2881
     *
2882
     * @throws InvalidArgumentException
2883
     *
2884
     * @return void
2885
     */
2886
    public static function allNullOrStartsWithLetter($value, $message = '')
2887
    {
2888
        static::isIterable($value);
2889
2890
        foreach ($value as $entry) {
2891
            null === $entry || static::startsWithLetter($entry, $message);
2892
        }
2893
    }
2894
2895
    /**
2896
     * @psalm-pure
2897
     *
2898
     * @param string|null $value
2899
     * @param string      $suffix
2900
     * @param string      $message
2901
     *
2902
     * @throws InvalidArgumentException
2903
     *
2904
     * @return void
2905
     */
2906
    public static function nullOrEndsWith($value, $suffix, $message = '')
2907
    {
2908
        null === $value || static::endsWith($value, $suffix, $message);
2909
    }
2910
2911
    /**
2912
     * @psalm-pure
2913
     *
2914
     * @param iterable<string> $value
2915
     * @param string           $suffix
2916
     * @param string           $message
2917
     *
2918
     * @throws InvalidArgumentException
2919
     *
2920
     * @return void
2921
     */
2922
    public static function allEndsWith($value, $suffix, $message = '')
2923
    {
2924
        static::isIterable($value);
2925
2926
        foreach ($value as $entry) {
2927
            static::endsWith($entry, $suffix, $message);
2928
        }
2929
    }
2930
2931
    /**
2932
     * @psalm-pure
2933
     *
2934
     * @param iterable<string|null> $value
2935
     * @param string                $suffix
2936
     * @param string                $message
2937
     *
2938
     * @throws InvalidArgumentException
2939
     *
2940
     * @return void
2941
     */
2942
    public static function allNullOrEndsWith($value, $suffix, $message = '')
2943
    {
2944
        static::isIterable($value);
2945
2946
        foreach ($value as $entry) {
2947
            null === $entry || static::endsWith($entry, $suffix, $message);
2948
        }
2949
    }
2950
2951
    /**
2952
     * @psalm-pure
2953
     *
2954
     * @param string|null $value
2955
     * @param string      $suffix
2956
     * @param string      $message
2957
     *
2958
     * @throws InvalidArgumentException
2959
     *
2960
     * @return void
2961
     */
2962
    public static function nullOrNotEndsWith($value, $suffix, $message = '')
2963
    {
2964
        null === $value || static::notEndsWith($value, $suffix, $message);
2965
    }
2966
2967
    /**
2968
     * @psalm-pure
2969
     *
2970
     * @param iterable<string> $value
2971
     * @param string           $suffix
2972
     * @param string           $message
2973
     *
2974
     * @throws InvalidArgumentException
2975
     *
2976
     * @return void
2977
     */
2978
    public static function allNotEndsWith($value, $suffix, $message = '')
2979
    {
2980
        static::isIterable($value);
2981
2982
        foreach ($value as $entry) {
2983
            static::notEndsWith($entry, $suffix, $message);
2984
        }
2985
    }
2986
2987
    /**
2988
     * @psalm-pure
2989
     *
2990
     * @param iterable<string|null> $value
2991
     * @param string                $suffix
2992
     * @param string                $message
2993
     *
2994
     * @throws InvalidArgumentException
2995
     *
2996
     * @return void
2997
     */
2998
    public static function allNullOrNotEndsWith($value, $suffix, $message = '')
2999
    {
3000
        static::isIterable($value);
3001
3002
        foreach ($value as $entry) {
3003
            null === $entry || static::notEndsWith($entry, $suffix, $message);
3004
        }
3005
    }
3006
3007
    /**
3008
     * @psalm-pure
3009
     *
3010
     * @param string|null $value
3011
     * @param string      $pattern
3012
     * @param string      $message
3013
     *
3014
     * @throws InvalidArgumentException
3015
     *
3016
     * @return void
3017
     */
3018
    public static function nullOrRegex($value, $pattern, $message = '')
3019
    {
3020
        null === $value || static::regex($value, $pattern, $message);
3021
    }
3022
3023
    /**
3024
     * @psalm-pure
3025
     *
3026
     * @param iterable<string> $value
3027
     * @param string           $pattern
3028
     * @param string           $message
3029
     *
3030
     * @throws InvalidArgumentException
3031
     *
3032
     * @return void
3033
     */
3034
    public static function allRegex($value, $pattern, $message = '')
3035
    {
3036
        static::isIterable($value);
3037
3038
        foreach ($value as $entry) {
3039
            static::regex($entry, $pattern, $message);
3040
        }
3041
    }
3042
3043
    /**
3044
     * @psalm-pure
3045
     *
3046
     * @param iterable<string|null> $value
3047
     * @param string                $pattern
3048
     * @param string                $message
3049
     *
3050
     * @throws InvalidArgumentException
3051
     *
3052
     * @return void
3053
     */
3054
    public static function allNullOrRegex($value, $pattern, $message = '')
3055
    {
3056
        static::isIterable($value);
3057
3058
        foreach ($value as $entry) {
3059
            null === $entry || static::regex($entry, $pattern, $message);
3060
        }
3061
    }
3062
3063
    /**
3064
     * @psalm-pure
3065
     *
3066
     * @param string|null $value
3067
     * @param string      $pattern
3068
     * @param string      $message
3069
     *
3070
     * @throws InvalidArgumentException
3071
     *
3072
     * @return void
3073
     */
3074
    public static function nullOrNotRegex($value, $pattern, $message = '')
3075
    {
3076
        null === $value || static::notRegex($value, $pattern, $message);
3077
    }
3078
3079
    /**
3080
     * @psalm-pure
3081
     *
3082
     * @param iterable<string> $value
3083
     * @param string           $pattern
3084
     * @param string           $message
3085
     *
3086
     * @throws InvalidArgumentException
3087
     *
3088
     * @return void
3089
     */
3090
    public static function allNotRegex($value, $pattern, $message = '')
3091
    {
3092
        static::isIterable($value);
3093
3094
        foreach ($value as $entry) {
3095
            static::notRegex($entry, $pattern, $message);
3096
        }
3097
    }
3098
3099
    /**
3100
     * @psalm-pure
3101
     *
3102
     * @param iterable<string|null> $value
3103
     * @param string                $pattern
3104
     * @param string                $message
3105
     *
3106
     * @throws InvalidArgumentException
3107
     *
3108
     * @return void
3109
     */
3110
    public static function allNullOrNotRegex($value, $pattern, $message = '')
3111
    {
3112
        static::isIterable($value);
3113
3114
        foreach ($value as $entry) {
3115
            null === $entry || static::notRegex($entry, $pattern, $message);
3116
        }
3117
    }
3118
3119
    /**
3120
     * @psalm-pure
3121
     *
3122
     * @param mixed  $value
3123
     * @param string $message
3124
     *
3125
     * @throws InvalidArgumentException
3126
     *
3127
     * @return void
3128
     */
3129
    public static function nullOrUnicodeLetters($value, $message = '')
3130
    {
3131
        null === $value || static::unicodeLetters($value, $message);
3132
    }
3133
3134
    /**
3135
     * @psalm-pure
3136
     *
3137
     * @param mixed  $value
3138
     * @param string $message
3139
     *
3140
     * @throws InvalidArgumentException
3141
     *
3142
     * @return void
3143
     */
3144
    public static function allUnicodeLetters($value, $message = '')
3145
    {
3146
        static::isIterable($value);
3147
3148
        foreach ($value as $entry) {
3149
            static::unicodeLetters($entry, $message);
3150
        }
3151
    }
3152
3153
    /**
3154
     * @psalm-pure
3155
     *
3156
     * @param mixed  $value
3157
     * @param string $message
3158
     *
3159
     * @throws InvalidArgumentException
3160
     *
3161
     * @return void
3162
     */
3163
    public static function allNullOrUnicodeLetters($value, $message = '')
3164
    {
3165
        static::isIterable($value);
3166
3167
        foreach ($value as $entry) {
3168
            null === $entry || static::unicodeLetters($entry, $message);
3169
        }
3170
    }
3171
3172
    /**
3173
     * @psalm-pure
3174
     *
3175
     * @param mixed  $value
3176
     * @param string $message
3177
     *
3178
     * @throws InvalidArgumentException
3179
     *
3180
     * @return void
3181
     */
3182
    public static function nullOrAlpha($value, $message = '')
3183
    {
3184
        null === $value || static::alpha($value, $message);
3185
    }
3186
3187
    /**
3188
     * @psalm-pure
3189
     *
3190
     * @param mixed  $value
3191
     * @param string $message
3192
     *
3193
     * @throws InvalidArgumentException
3194
     *
3195
     * @return void
3196
     */
3197
    public static function allAlpha($value, $message = '')
3198
    {
3199
        static::isIterable($value);
3200
3201
        foreach ($value as $entry) {
3202
            static::alpha($entry, $message);
3203
        }
3204
    }
3205
3206
    /**
3207
     * @psalm-pure
3208
     *
3209
     * @param mixed  $value
3210
     * @param string $message
3211
     *
3212
     * @throws InvalidArgumentException
3213
     *
3214
     * @return void
3215
     */
3216
    public static function allNullOrAlpha($value, $message = '')
3217
    {
3218
        static::isIterable($value);
3219
3220
        foreach ($value as $entry) {
3221
            null === $entry || static::alpha($entry, $message);
3222
        }
3223
    }
3224
3225
    /**
3226
     * @psalm-pure
3227
     *
3228
     * @param string|null $value
3229
     * @param string      $message
3230
     *
3231
     * @throws InvalidArgumentException
3232
     *
3233
     * @return void
3234
     */
3235
    public static function nullOrDigits($value, $message = '')
3236
    {
3237
        null === $value || static::digits($value, $message);
3238
    }
3239
3240
    /**
3241
     * @psalm-pure
3242
     *
3243
     * @param iterable<string> $value
3244
     * @param string           $message
3245
     *
3246
     * @throws InvalidArgumentException
3247
     *
3248
     * @return void
3249
     */
3250
    public static function allDigits($value, $message = '')
3251
    {
3252
        static::isIterable($value);
3253
3254
        foreach ($value as $entry) {
3255
            static::digits($entry, $message);
3256
        }
3257
    }
3258
3259
    /**
3260
     * @psalm-pure
3261
     *
3262
     * @param iterable<string|null> $value
3263
     * @param string                $message
3264
     *
3265
     * @throws InvalidArgumentException
3266
     *
3267
     * @return void
3268
     */
3269
    public static function allNullOrDigits($value, $message = '')
3270
    {
3271
        static::isIterable($value);
3272
3273
        foreach ($value as $entry) {
3274
            null === $entry || static::digits($entry, $message);
3275
        }
3276
    }
3277
3278
    /**
3279
     * @psalm-pure
3280
     *
3281
     * @param string|null $value
3282
     * @param string      $message
3283
     *
3284
     * @throws InvalidArgumentException
3285
     *
3286
     * @return void
3287
     */
3288
    public static function nullOrAlnum($value, $message = '')
3289
    {
3290
        null === $value || static::alnum($value, $message);
3291
    }
3292
3293
    /**
3294
     * @psalm-pure
3295
     *
3296
     * @param iterable<string> $value
3297
     * @param string           $message
3298
     *
3299
     * @throws InvalidArgumentException
3300
     *
3301
     * @return void
3302
     */
3303
    public static function allAlnum($value, $message = '')
3304
    {
3305
        static::isIterable($value);
3306
3307
        foreach ($value as $entry) {
3308
            static::alnum($entry, $message);
3309
        }
3310
    }
3311
3312
    /**
3313
     * @psalm-pure
3314
     *
3315
     * @param iterable<string|null> $value
3316
     * @param string                $message
3317
     *
3318
     * @throws InvalidArgumentException
3319
     *
3320
     * @return void
3321
     */
3322
    public static function allNullOrAlnum($value, $message = '')
3323
    {
3324
        static::isIterable($value);
3325
3326
        foreach ($value as $entry) {
3327
            null === $entry || static::alnum($entry, $message);
3328
        }
3329
    }
3330
3331
    /**
3332
     * @psalm-pure
3333
     * @psalm-assert lowercase-string|null $value
3334
     *
3335
     * @param string|null $value
3336
     * @param string      $message
3337
     *
3338
     * @throws InvalidArgumentException
3339
     *
3340
     * @return void
3341
     */
3342
    public static function nullOrLower($value, $message = '')
3343
    {
3344
        null === $value || static::lower($value, $message);
3345
    }
3346
3347
    /**
3348
     * @psalm-pure
3349
     * @psalm-assert iterable<lowercase-string> $value
3350
     *
3351
     * @param iterable<string> $value
3352
     * @param string           $message
3353
     *
3354
     * @throws InvalidArgumentException
3355
     *
3356
     * @return void
3357
     */
3358
    public static function allLower($value, $message = '')
3359
    {
3360
        static::isIterable($value);
3361
3362
        foreach ($value as $entry) {
3363
            static::lower($entry, $message);
3364
        }
3365
    }
3366
3367
    /**
3368
     * @psalm-pure
3369
     * @psalm-assert iterable<lowercase-string|null> $value
3370
     *
3371
     * @param iterable<string|null> $value
3372
     * @param string                $message
3373
     *
3374
     * @throws InvalidArgumentException
3375
     *
3376
     * @return void
3377
     */
3378
    public static function allNullOrLower($value, $message = '')
3379
    {
3380
        static::isIterable($value);
3381
3382
        foreach ($value as $entry) {
3383
            null === $entry || static::lower($entry, $message);
3384
        }
3385
    }
3386
3387
    /**
3388
     * @psalm-pure
3389
     *
3390
     * @param string|null $value
3391
     * @param string      $message
3392
     *
3393
     * @throws InvalidArgumentException
3394
     *
3395
     * @return void
3396
     */
3397
    public static function nullOrUpper($value, $message = '')
3398
    {
3399
        null === $value || static::upper($value, $message);
3400
    }
3401
3402
    /**
3403
     * @psalm-pure
3404
     *
3405
     * @param iterable<string> $value
3406
     * @param string           $message
3407
     *
3408
     * @throws InvalidArgumentException
3409
     *
3410
     * @return void
3411
     */
3412
    public static function allUpper($value, $message = '')
3413
    {
3414
        static::isIterable($value);
3415
3416
        foreach ($value as $entry) {
3417
            static::upper($entry, $message);
3418
        }
3419
    }
3420
3421
    /**
3422
     * @psalm-pure
3423
     * @psalm-assert iterable<!lowercase-string|null> $value
3424
     *
3425
     * @param iterable<string|null> $value
3426
     * @param string                $message
3427
     *
3428
     * @throws InvalidArgumentException
3429
     *
3430
     * @return void
3431
     */
3432
    public static function allNullOrUpper($value, $message = '')
3433
    {
3434
        static::isIterable($value);
3435
3436
        foreach ($value as $entry) {
3437
            null === $entry || static::upper($entry, $message);
3438
        }
3439
    }
3440
3441
    /**
3442
     * @psalm-pure
3443
     *
3444
     * @param string|null $value
3445
     * @param int         $length
3446
     * @param string      $message
3447
     *
3448
     * @throws InvalidArgumentException
3449
     *
3450
     * @return void
3451
     */
3452
    public static function nullOrLength($value, $length, $message = '')
3453
    {
3454
        null === $value || static::length($value, $length, $message);
3455
    }
3456
3457
    /**
3458
     * @psalm-pure
3459
     *
3460
     * @param iterable<string> $value
3461
     * @param int              $length
3462
     * @param string           $message
3463
     *
3464
     * @throws InvalidArgumentException
3465
     *
3466
     * @return void
3467
     */
3468
    public static function allLength($value, $length, $message = '')
3469
    {
3470
        static::isIterable($value);
3471
3472
        foreach ($value as $entry) {
3473
            static::length($entry, $length, $message);
3474
        }
3475
    }
3476
3477
    /**
3478
     * @psalm-pure
3479
     *
3480
     * @param iterable<string|null> $value
3481
     * @param int                   $length
3482
     * @param string                $message
3483
     *
3484
     * @throws InvalidArgumentException
3485
     *
3486
     * @return void
3487
     */
3488
    public static function allNullOrLength($value, $length, $message = '')
3489
    {
3490
        static::isIterable($value);
3491
3492
        foreach ($value as $entry) {
3493
            null === $entry || static::length($entry, $length, $message);
3494
        }
3495
    }
3496
3497
    /**
3498
     * @psalm-pure
3499
     *
3500
     * @param string|null $value
3501
     * @param int|float   $min
3502
     * @param string      $message
3503
     *
3504
     * @throws InvalidArgumentException
3505
     *
3506
     * @return void
3507
     */
3508
    public static function nullOrMinLength($value, $min, $message = '')
3509
    {
3510
        null === $value || static::minLength($value, $min, $message);
3511
    }
3512
3513
    /**
3514
     * @psalm-pure
3515
     *
3516
     * @param iterable<string> $value
3517
     * @param int|float        $min
3518
     * @param string           $message
3519
     *
3520
     * @throws InvalidArgumentException
3521
     *
3522
     * @return void
3523
     */
3524
    public static function allMinLength($value, $min, $message = '')
3525
    {
3526
        static::isIterable($value);
3527
3528
        foreach ($value as $entry) {
3529
            static::minLength($entry, $min, $message);
3530
        }
3531
    }
3532
3533
    /**
3534
     * @psalm-pure
3535
     *
3536
     * @param iterable<string|null> $value
3537
     * @param int|float             $min
3538
     * @param string                $message
3539
     *
3540
     * @throws InvalidArgumentException
3541
     *
3542
     * @return void
3543
     */
3544
    public static function allNullOrMinLength($value, $min, $message = '')
3545
    {
3546
        static::isIterable($value);
3547
3548
        foreach ($value as $entry) {
3549
            null === $entry || static::minLength($entry, $min, $message);
3550
        }
3551
    }
3552
3553
    /**
3554
     * @psalm-pure
3555
     *
3556
     * @param string|null $value
3557
     * @param int|float   $max
3558
     * @param string      $message
3559
     *
3560
     * @throws InvalidArgumentException
3561
     *
3562
     * @return void
3563
     */
3564
    public static function nullOrMaxLength($value, $max, $message = '')
3565
    {
3566
        null === $value || static::maxLength($value, $max, $message);
3567
    }
3568
3569
    /**
3570
     * @psalm-pure
3571
     *
3572
     * @param iterable<string> $value
3573
     * @param int|float        $max
3574
     * @param string           $message
3575
     *
3576
     * @throws InvalidArgumentException
3577
     *
3578
     * @return void
3579
     */
3580
    public static function allMaxLength($value, $max, $message = '')
3581
    {
3582
        static::isIterable($value);
3583
3584
        foreach ($value as $entry) {
3585
            static::maxLength($entry, $max, $message);
3586
        }
3587
    }
3588
3589
    /**
3590
     * @psalm-pure
3591
     *
3592
     * @param iterable<string|null> $value
3593
     * @param int|float             $max
3594
     * @param string                $message
3595
     *
3596
     * @throws InvalidArgumentException
3597
     *
3598
     * @return void
3599
     */
3600
    public static function allNullOrMaxLength($value, $max, $message = '')
3601
    {
3602
        static::isIterable($value);
3603
3604
        foreach ($value as $entry) {
3605
            null === $entry || static::maxLength($entry, $max, $message);
3606
        }
3607
    }
3608
3609
    /**
3610
     * @psalm-pure
3611
     *
3612
     * @param string|null $value
3613
     * @param int|float   $min
3614
     * @param int|float   $max
3615
     * @param string      $message
3616
     *
3617
     * @throws InvalidArgumentException
3618
     *
3619
     * @return void
3620
     */
3621
    public static function nullOrLengthBetween($value, $min, $max, $message = '')
3622
    {
3623
        null === $value || static::lengthBetween($value, $min, $max, $message);
0 ignored issues
show
Bug introduced by
The method lengthBetween() does not exist on Webmozart\Assert\Mixin. Did you maybe mean allLengthBetween()? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

3623
        null === $value || static::/** @scrutinizer ignore-call */ lengthBetween($value, $min, $max, $message);

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
3624
    }
3625
3626
    /**
3627
     * @psalm-pure
3628
     *
3629
     * @param iterable<string> $value
3630
     * @param int|float        $min
3631
     * @param int|float        $max
3632
     * @param string           $message
3633
     *
3634
     * @throws InvalidArgumentException
3635
     *
3636
     * @return void
3637
     */
3638
    public static function allLengthBetween($value, $min, $max, $message = '')
3639
    {
3640
        static::isIterable($value);
3641
3642
        foreach ($value as $entry) {
3643
            static::lengthBetween($entry, $min, $max, $message);
3644
        }
3645
    }
3646
3647
    /**
3648
     * @psalm-pure
3649
     *
3650
     * @param iterable<string|null> $value
3651
     * @param int|float             $min
3652
     * @param int|float             $max
3653
     * @param string                $message
3654
     *
3655
     * @throws InvalidArgumentException
3656
     *
3657
     * @return void
3658
     */
3659
    public static function allNullOrLengthBetween($value, $min, $max, $message = '')
3660
    {
3661
        static::isIterable($value);
3662
3663
        foreach ($value as $entry) {
3664
            null === $entry || static::lengthBetween($entry, $min, $max, $message);
3665
        }
3666
    }
3667
3668
    /**
3669
     * @param mixed  $value
3670
     * @param string $message
3671
     *
3672
     * @throws InvalidArgumentException
3673
     *
3674
     * @return void
3675
     */
3676
    public static function nullOrFileExists($value, $message = '')
3677
    {
3678
        null === $value || static::fileExists($value, $message);
3679
    }
3680
3681
    /**
3682
     * @param mixed  $value
3683
     * @param string $message
3684
     *
3685
     * @throws InvalidArgumentException
3686
     *
3687
     * @return void
3688
     */
3689
    public static function allFileExists($value, $message = '')
3690
    {
3691
        static::isIterable($value);
3692
3693
        foreach ($value as $entry) {
3694
            static::fileExists($entry, $message);
3695
        }
3696
    }
3697
3698
    /**
3699
     * @param mixed  $value
3700
     * @param string $message
3701
     *
3702
     * @throws InvalidArgumentException
3703
     *
3704
     * @return void
3705
     */
3706
    public static function allNullOrFileExists($value, $message = '')
3707
    {
3708
        static::isIterable($value);
3709
3710
        foreach ($value as $entry) {
3711
            null === $entry || static::fileExists($entry, $message);
3712
        }
3713
    }
3714
3715
    /**
3716
     * @param mixed  $value
3717
     * @param string $message
3718
     *
3719
     * @throws InvalidArgumentException
3720
     *
3721
     * @return void
3722
     */
3723
    public static function nullOrFile($value, $message = '')
3724
    {
3725
        null === $value || static::file($value, $message);
3726
    }
3727
3728
    /**
3729
     * @param mixed  $value
3730
     * @param string $message
3731
     *
3732
     * @throws InvalidArgumentException
3733
     *
3734
     * @return void
3735
     */
3736
    public static function allFile($value, $message = '')
3737
    {
3738
        static::isIterable($value);
3739
3740
        foreach ($value as $entry) {
3741
            static::file($entry, $message);
3742
        }
3743
    }
3744
3745
    /**
3746
     * @param mixed  $value
3747
     * @param string $message
3748
     *
3749
     * @throws InvalidArgumentException
3750
     *
3751
     * @return void
3752
     */
3753
    public static function allNullOrFile($value, $message = '')
3754
    {
3755
        static::isIterable($value);
3756
3757
        foreach ($value as $entry) {
3758
            null === $entry || static::file($entry, $message);
3759
        }
3760
    }
3761
3762
    /**
3763
     * @param mixed  $value
3764
     * @param string $message
3765
     *
3766
     * @throws InvalidArgumentException
3767
     *
3768
     * @return void
3769
     */
3770
    public static function nullOrDirectory($value, $message = '')
3771
    {
3772
        null === $value || static::directory($value, $message);
3773
    }
3774
3775
    /**
3776
     * @param mixed  $value
3777
     * @param string $message
3778
     *
3779
     * @throws InvalidArgumentException
3780
     *
3781
     * @return void
3782
     */
3783
    public static function allDirectory($value, $message = '')
3784
    {
3785
        static::isIterable($value);
3786
3787
        foreach ($value as $entry) {
3788
            static::directory($entry, $message);
3789
        }
3790
    }
3791
3792
    /**
3793
     * @param mixed  $value
3794
     * @param string $message
3795
     *
3796
     * @throws InvalidArgumentException
3797
     *
3798
     * @return void
3799
     */
3800
    public static function allNullOrDirectory($value, $message = '')
3801
    {
3802
        static::isIterable($value);
3803
3804
        foreach ($value as $entry) {
3805
            null === $entry || static::directory($entry, $message);
3806
        }
3807
    }
3808
3809
    /**
3810
     * @param string|null $value
3811
     * @param string      $message
3812
     *
3813
     * @throws InvalidArgumentException
3814
     *
3815
     * @return void
3816
     */
3817
    public static function nullOrReadable($value, $message = '')
3818
    {
3819
        null === $value || static::readable($value, $message);
3820
    }
3821
3822
    /**
3823
     * @param iterable<string> $value
3824
     * @param string           $message
3825
     *
3826
     * @throws InvalidArgumentException
3827
     *
3828
     * @return void
3829
     */
3830
    public static function allReadable($value, $message = '')
3831
    {
3832
        static::isIterable($value);
3833
3834
        foreach ($value as $entry) {
3835
            static::readable($entry, $message);
3836
        }
3837
    }
3838
3839
    /**
3840
     * @param iterable<string|null> $value
3841
     * @param string                $message
3842
     *
3843
     * @throws InvalidArgumentException
3844
     *
3845
     * @return void
3846
     */
3847
    public static function allNullOrReadable($value, $message = '')
3848
    {
3849
        static::isIterable($value);
3850
3851
        foreach ($value as $entry) {
3852
            null === $entry || static::readable($entry, $message);
3853
        }
3854
    }
3855
3856
    /**
3857
     * @param string|null $value
3858
     * @param string      $message
3859
     *
3860
     * @throws InvalidArgumentException
3861
     *
3862
     * @return void
3863
     */
3864
    public static function nullOrWritable($value, $message = '')
3865
    {
3866
        null === $value || static::writable($value, $message);
3867
    }
3868
3869
    /**
3870
     * @param iterable<string> $value
3871
     * @param string           $message
3872
     *
3873
     * @throws InvalidArgumentException
3874
     *
3875
     * @return void
3876
     */
3877
    public static function allWritable($value, $message = '')
3878
    {
3879
        static::isIterable($value);
3880
3881
        foreach ($value as $entry) {
3882
            static::writable($entry, $message);
3883
        }
3884
    }
3885
3886
    /**
3887
     * @param iterable<string|null> $value
3888
     * @param string                $message
3889
     *
3890
     * @throws InvalidArgumentException
3891
     *
3892
     * @return void
3893
     */
3894
    public static function allNullOrWritable($value, $message = '')
3895
    {
3896
        static::isIterable($value);
3897
3898
        foreach ($value as $entry) {
3899
            null === $entry || static::writable($entry, $message);
3900
        }
3901
    }
3902
3903
    /**
3904
     * @psalm-assert class-string|null $value
3905
     *
3906
     * @param mixed  $value
3907
     * @param string $message
3908
     *
3909
     * @throws InvalidArgumentException
3910
     *
3911
     * @return void
3912
     */
3913
    public static function nullOrClassExists($value, $message = '')
3914
    {
3915
        null === $value || static::classExists($value, $message);
3916
    }
3917
3918
    /**
3919
     * @psalm-assert iterable<class-string> $value
3920
     *
3921
     * @param mixed  $value
3922
     * @param string $message
3923
     *
3924
     * @throws InvalidArgumentException
3925
     *
3926
     * @return void
3927
     */
3928
    public static function allClassExists($value, $message = '')
3929
    {
3930
        static::isIterable($value);
3931
3932
        foreach ($value as $entry) {
3933
            static::classExists($entry, $message);
3934
        }
3935
    }
3936
3937
    /**
3938
     * @psalm-assert iterable<class-string|null> $value
3939
     *
3940
     * @param mixed  $value
3941
     * @param string $message
3942
     *
3943
     * @throws InvalidArgumentException
3944
     *
3945
     * @return void
3946
     */
3947
    public static function allNullOrClassExists($value, $message = '')
3948
    {
3949
        static::isIterable($value);
3950
3951
        foreach ($value as $entry) {
3952
            null === $entry || static::classExists($entry, $message);
3953
        }
3954
    }
3955
3956
    /**
3957
     * @psalm-pure
3958
     * @psalm-template ExpectedType of object
3959
     * @psalm-param class-string<ExpectedType> $class
3960
     * @psalm-assert class-string<ExpectedType>|ExpectedType|null $value
3961
     *
3962
     * @param mixed         $value
3963
     * @param string|object $class
3964
     * @param string        $message
3965
     *
3966
     * @throws InvalidArgumentException
3967
     *
3968
     * @return void
3969
     */
3970
    public static function nullOrSubclassOf($value, $class, $message = '')
3971
    {
3972
        null === $value || static::subclassOf($value, $class, $message);
3973
    }
3974
3975
    /**
3976
     * @psalm-pure
3977
     * @psalm-template ExpectedType of object
3978
     * @psalm-param class-string<ExpectedType> $class
3979
     * @psalm-assert iterable<class-string<ExpectedType>|ExpectedType> $value
3980
     *
3981
     * @param mixed         $value
3982
     * @param string|object $class
3983
     * @param string        $message
3984
     *
3985
     * @throws InvalidArgumentException
3986
     *
3987
     * @return void
3988
     */
3989
    public static function allSubclassOf($value, $class, $message = '')
3990
    {
3991
        static::isIterable($value);
3992
3993
        foreach ($value as $entry) {
3994
            static::subclassOf($entry, $class, $message);
3995
        }
3996
    }
3997
3998
    /**
3999
     * @psalm-pure
4000
     * @psalm-template ExpectedType of object
4001
     * @psalm-param class-string<ExpectedType> $class
4002
     * @psalm-assert iterable<class-string<ExpectedType>|ExpectedType|null> $value
4003
     *
4004
     * @param mixed         $value
4005
     * @param string|object $class
4006
     * @param string        $message
4007
     *
4008
     * @throws InvalidArgumentException
4009
     *
4010
     * @return void
4011
     */
4012
    public static function allNullOrSubclassOf($value, $class, $message = '')
4013
    {
4014
        static::isIterable($value);
4015
4016
        foreach ($value as $entry) {
4017
            null === $entry || static::subclassOf($entry, $class, $message);
4018
        }
4019
    }
4020
4021
    /**
4022
     * @psalm-assert class-string|null $value
4023
     *
4024
     * @param mixed  $value
4025
     * @param string $message
4026
     *
4027
     * @throws InvalidArgumentException
4028
     *
4029
     * @return void
4030
     */
4031
    public static function nullOrInterfaceExists($value, $message = '')
4032
    {
4033
        null === $value || static::interfaceExists($value, $message);
4034
    }
4035
4036
    /**
4037
     * @psalm-assert iterable<class-string> $value
4038
     *
4039
     * @param mixed  $value
4040
     * @param string $message
4041
     *
4042
     * @throws InvalidArgumentException
4043
     *
4044
     * @return void
4045
     */
4046
    public static function allInterfaceExists($value, $message = '')
4047
    {
4048
        static::isIterable($value);
4049
4050
        foreach ($value as $entry) {
4051
            static::interfaceExists($entry, $message);
4052
        }
4053
    }
4054
4055
    /**
4056
     * @psalm-assert iterable<class-string|null> $value
4057
     *
4058
     * @param mixed  $value
4059
     * @param string $message
4060
     *
4061
     * @throws InvalidArgumentException
4062
     *
4063
     * @return void
4064
     */
4065
    public static function allNullOrInterfaceExists($value, $message = '')
4066
    {
4067
        static::isIterable($value);
4068
4069
        foreach ($value as $entry) {
4070
            null === $entry || static::interfaceExists($entry, $message);
4071
        }
4072
    }
4073
4074
    /**
4075
     * @psalm-pure
4076
     * @psalm-template ExpectedType of object
4077
     * @psalm-param class-string<ExpectedType> $interface
4078
     * @psalm-assert class-string<ExpectedType>|null $value
4079
     *
4080
     * @param mixed  $value
4081
     * @param mixed  $interface
4082
     * @param string $message
4083
     *
4084
     * @throws InvalidArgumentException
4085
     *
4086
     * @return void
4087
     */
4088
    public static function nullOrImplementsInterface($value, $interface, $message = '')
4089
    {
4090
        null === $value || static::implementsInterface($value, $interface, $message);
4091
    }
4092
4093
    /**
4094
     * @psalm-pure
4095
     * @psalm-template ExpectedType of object
4096
     * @psalm-param class-string<ExpectedType> $interface
4097
     * @psalm-assert iterable<class-string<ExpectedType>> $value
4098
     *
4099
     * @param mixed  $value
4100
     * @param mixed  $interface
4101
     * @param string $message
4102
     *
4103
     * @throws InvalidArgumentException
4104
     *
4105
     * @return void
4106
     */
4107
    public static function allImplementsInterface($value, $interface, $message = '')
4108
    {
4109
        static::isIterable($value);
4110
4111
        foreach ($value as $entry) {
4112
            static::implementsInterface($entry, $interface, $message);
4113
        }
4114
    }
4115
4116
    /**
4117
     * @psalm-pure
4118
     * @psalm-template ExpectedType of object
4119
     * @psalm-param class-string<ExpectedType> $interface
4120
     * @psalm-assert iterable<class-string<ExpectedType>|null> $value
4121
     *
4122
     * @param mixed  $value
4123
     * @param mixed  $interface
4124
     * @param string $message
4125
     *
4126
     * @throws InvalidArgumentException
4127
     *
4128
     * @return void
4129
     */
4130
    public static function allNullOrImplementsInterface($value, $interface, $message = '')
4131
    {
4132
        static::isIterable($value);
4133
4134
        foreach ($value as $entry) {
4135
            null === $entry || static::implementsInterface($entry, $interface, $message);
4136
        }
4137
    }
4138
4139
    /**
4140
     * @psalm-pure
4141
     * @psalm-param class-string|object|null $classOrObject
4142
     *
4143
     * @param string|object|null $classOrObject
4144
     * @param mixed              $property
4145
     * @param string             $message
4146
     *
4147
     * @throws InvalidArgumentException
4148
     *
4149
     * @return void
4150
     */
4151
    public static function nullOrPropertyExists($classOrObject, $property, $message = '')
4152
    {
4153
        null === $classOrObject || static::propertyExists($classOrObject, $property, $message);
4154
    }
4155
4156
    /**
4157
     * @psalm-pure
4158
     * @psalm-param iterable<class-string|object> $classOrObject
4159
     *
4160
     * @param iterable<string|object> $classOrObject
4161
     * @param mixed                   $property
4162
     * @param string                  $message
4163
     *
4164
     * @throws InvalidArgumentException
4165
     *
4166
     * @return void
4167
     */
4168
    public static function allPropertyExists($classOrObject, $property, $message = '')
4169
    {
4170
        static::isIterable($classOrObject);
4171
4172
        foreach ($classOrObject as $entry) {
4173
            static::propertyExists($entry, $property, $message);
4174
        }
4175
    }
4176
4177
    /**
4178
     * @psalm-pure
4179
     * @psalm-param iterable<class-string|object|null> $classOrObject
4180
     *
4181
     * @param iterable<string|object|null> $classOrObject
4182
     * @param mixed                        $property
4183
     * @param string                       $message
4184
     *
4185
     * @throws InvalidArgumentException
4186
     *
4187
     * @return void
4188
     */
4189
    public static function allNullOrPropertyExists($classOrObject, $property, $message = '')
4190
    {
4191
        static::isIterable($classOrObject);
4192
4193
        foreach ($classOrObject as $entry) {
4194
            null === $entry || static::propertyExists($entry, $property, $message);
4195
        }
4196
    }
4197
4198
    /**
4199
     * @psalm-pure
4200
     * @psalm-param class-string|object|null $classOrObject
4201
     *
4202
     * @param string|object|null $classOrObject
4203
     * @param mixed              $property
4204
     * @param string             $message
4205
     *
4206
     * @throws InvalidArgumentException
4207
     *
4208
     * @return void
4209
     */
4210
    public static function nullOrPropertyNotExists($classOrObject, $property, $message = '')
4211
    {
4212
        null === $classOrObject || static::propertyNotExists($classOrObject, $property, $message);
4213
    }
4214
4215
    /**
4216
     * @psalm-pure
4217
     * @psalm-param iterable<class-string|object> $classOrObject
4218
     *
4219
     * @param iterable<string|object> $classOrObject
4220
     * @param mixed                   $property
4221
     * @param string                  $message
4222
     *
4223
     * @throws InvalidArgumentException
4224
     *
4225
     * @return void
4226
     */
4227
    public static function allPropertyNotExists($classOrObject, $property, $message = '')
4228
    {
4229
        static::isIterable($classOrObject);
4230
4231
        foreach ($classOrObject as $entry) {
4232
            static::propertyNotExists($entry, $property, $message);
4233
        }
4234
    }
4235
4236
    /**
4237
     * @psalm-pure
4238
     * @psalm-param iterable<class-string|object|null> $classOrObject
4239
     *
4240
     * @param iterable<string|object|null> $classOrObject
4241
     * @param mixed                        $property
4242
     * @param string                       $message
4243
     *
4244
     * @throws InvalidArgumentException
4245
     *
4246
     * @return void
4247
     */
4248
    public static function allNullOrPropertyNotExists($classOrObject, $property, $message = '')
4249
    {
4250
        static::isIterable($classOrObject);
4251
4252
        foreach ($classOrObject as $entry) {
4253
            null === $entry || static::propertyNotExists($entry, $property, $message);
4254
        }
4255
    }
4256
4257
    /**
4258
     * @psalm-pure
4259
     * @psalm-param class-string|object|null $classOrObject
4260
     *
4261
     * @param string|object|null $classOrObject
4262
     * @param mixed              $method
4263
     * @param string             $message
4264
     *
4265
     * @throws InvalidArgumentException
4266
     *
4267
     * @return void
4268
     */
4269
    public static function nullOrMethodExists($classOrObject, $method, $message = '')
4270
    {
4271
        null === $classOrObject || static::methodExists($classOrObject, $method, $message);
4272
    }
4273
4274
    /**
4275
     * @psalm-pure
4276
     * @psalm-param iterable<class-string|object> $classOrObject
4277
     *
4278
     * @param iterable<string|object> $classOrObject
4279
     * @param mixed                   $method
4280
     * @param string                  $message
4281
     *
4282
     * @throws InvalidArgumentException
4283
     *
4284
     * @return void
4285
     */
4286
    public static function allMethodExists($classOrObject, $method, $message = '')
4287
    {
4288
        static::isIterable($classOrObject);
4289
4290
        foreach ($classOrObject as $entry) {
4291
            static::methodExists($entry, $method, $message);
4292
        }
4293
    }
4294
4295
    /**
4296
     * @psalm-pure
4297
     * @psalm-param iterable<class-string|object|null> $classOrObject
4298
     *
4299
     * @param iterable<string|object|null> $classOrObject
4300
     * @param mixed                        $method
4301
     * @param string                       $message
4302
     *
4303
     * @throws InvalidArgumentException
4304
     *
4305
     * @return void
4306
     */
4307
    public static function allNullOrMethodExists($classOrObject, $method, $message = '')
4308
    {
4309
        static::isIterable($classOrObject);
4310
4311
        foreach ($classOrObject as $entry) {
4312
            null === $entry || static::methodExists($entry, $method, $message);
4313
        }
4314
    }
4315
4316
    /**
4317
     * @psalm-pure
4318
     * @psalm-param class-string|object|null $classOrObject
4319
     *
4320
     * @param string|object|null $classOrObject
4321
     * @param mixed              $method
4322
     * @param string             $message
4323
     *
4324
     * @throws InvalidArgumentException
4325
     *
4326
     * @return void
4327
     */
4328
    public static function nullOrMethodNotExists($classOrObject, $method, $message = '')
4329
    {
4330
        null === $classOrObject || static::methodNotExists($classOrObject, $method, $message);
0 ignored issues
show
Bug introduced by
The method methodNotExists() does not exist on Webmozart\Assert\Mixin. Did you maybe mean allMethodNotExists()? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

4330
        null === $classOrObject || static::/** @scrutinizer ignore-call */ methodNotExists($classOrObject, $method, $message);

This check looks for calls to methods that do not seem to exist on a given type. It looks for the method on the type itself as well as in inherited classes or implemented interfaces.

This is most likely a typographical error or the method has been renamed.

Loading history...
4331
    }
4332
4333
    /**
4334
     * @psalm-pure
4335
     * @psalm-param iterable<class-string|object> $classOrObject
4336
     *
4337
     * @param iterable<string|object> $classOrObject
4338
     * @param mixed                   $method
4339
     * @param string                  $message
4340
     *
4341
     * @throws InvalidArgumentException
4342
     *
4343
     * @return void
4344
     */
4345
    public static function allMethodNotExists($classOrObject, $method, $message = '')
4346
    {
4347
        static::isIterable($classOrObject);
4348
4349
        foreach ($classOrObject as $entry) {
4350
            static::methodNotExists($entry, $method, $message);
4351
        }
4352
    }
4353
4354
    /**
4355
     * @psalm-pure
4356
     * @psalm-param iterable<class-string|object|null> $classOrObject
4357
     *
4358
     * @param iterable<string|object|null> $classOrObject
4359
     * @param mixed                        $method
4360
     * @param string                       $message
4361
     *
4362
     * @throws InvalidArgumentException
4363
     *
4364
     * @return void
4365
     */
4366
    public static function allNullOrMethodNotExists($classOrObject, $method, $message = '')
4367
    {
4368
        static::isIterable($classOrObject);
4369
4370
        foreach ($classOrObject as $entry) {
4371
            null === $entry || static::methodNotExists($entry, $method, $message);
4372
        }
4373
    }
4374
4375
    /**
4376
     * @psalm-pure
4377
     *
4378
     * @param array|null $array
4379
     * @param string|int $key
4380
     * @param string     $message
4381
     *
4382
     * @throws InvalidArgumentException
4383
     *
4384
     * @return void
4385
     */
4386
    public static function nullOrKeyExists($array, $key, $message = '')
4387
    {
4388
        null === $array || static::keyExists($array, $key, $message);
4389
    }
4390
4391
    /**
4392
     * @psalm-pure
4393
     *
4394
     * @param iterable<array> $array
4395
     * @param string|int      $key
4396
     * @param string          $message
4397
     *
4398
     * @throws InvalidArgumentException
4399
     *
4400
     * @return void
4401
     */
4402
    public static function allKeyExists($array, $key, $message = '')
4403
    {
4404
        static::isIterable($array);
4405
4406
        foreach ($array as $entry) {
4407
            static::keyExists($entry, $key, $message);
4408
        }
4409
    }
4410
4411
    /**
4412
     * @psalm-pure
4413
     *
4414
     * @param iterable<array|null> $array
4415
     * @param string|int           $key
4416
     * @param string               $message
4417
     *
4418
     * @throws InvalidArgumentException
4419
     *
4420
     * @return void
4421
     */
4422
    public static function allNullOrKeyExists($array, $key, $message = '')
4423
    {
4424
        static::isIterable($array);
4425
4426
        foreach ($array as $entry) {
4427
            null === $entry || static::keyExists($entry, $key, $message);
4428
        }
4429
    }
4430
4431
    /**
4432
     * @psalm-pure
4433
     *
4434
     * @param array|null $array
4435
     * @param string|int $key
4436
     * @param string     $message
4437
     *
4438
     * @throws InvalidArgumentException
4439
     *
4440
     * @return void
4441
     */
4442
    public static function nullOrKeyNotExists($array, $key, $message = '')
4443
    {
4444
        null === $array || static::keyNotExists($array, $key, $message);
4445
    }
4446
4447
    /**
4448
     * @psalm-pure
4449
     *
4450
     * @param iterable<array> $array
4451
     * @param string|int      $key
4452
     * @param string          $message
4453
     *
4454
     * @throws InvalidArgumentException
4455
     *
4456
     * @return void
4457
     */
4458
    public static function allKeyNotExists($array, $key, $message = '')
4459
    {
4460
        static::isIterable($array);
4461
4462
        foreach ($array as $entry) {
4463
            static::keyNotExists($entry, $key, $message);
4464
        }
4465
    }
4466
4467
    /**
4468
     * @psalm-pure
4469
     *
4470
     * @param iterable<array|null> $array
4471
     * @param string|int           $key
4472
     * @param string               $message
4473
     *
4474
     * @throws InvalidArgumentException
4475
     *
4476
     * @return void
4477
     */
4478
    public static function allNullOrKeyNotExists($array, $key, $message = '')
4479
    {
4480
        static::isIterable($array);
4481
4482
        foreach ($array as $entry) {
4483
            null === $entry || static::keyNotExists($entry, $key, $message);
4484
        }
4485
    }
4486
4487
    /**
4488
     * @psalm-pure
4489
     * @psalm-assert array-key|null $value
4490
     *
4491
     * @param mixed  $value
4492
     * @param string $message
4493
     *
4494
     * @throws InvalidArgumentException
4495
     *
4496
     * @return void
4497
     */
4498
    public static function nullOrValidArrayKey($value, $message = '')
4499
    {
4500
        null === $value || static::validArrayKey($value, $message);
4501
    }
4502
4503
    /**
4504
     * @psalm-pure
4505
     * @psalm-assert iterable<array-key> $value
4506
     *
4507
     * @param mixed  $value
4508
     * @param string $message
4509
     *
4510
     * @throws InvalidArgumentException
4511
     *
4512
     * @return void
4513
     */
4514
    public static function allValidArrayKey($value, $message = '')
4515
    {
4516
        static::isIterable($value);
4517
4518
        foreach ($value as $entry) {
4519
            static::validArrayKey($entry, $message);
4520
        }
4521
    }
4522
4523
    /**
4524
     * @psalm-pure
4525
     * @psalm-assert iterable<array-key|null> $value
4526
     *
4527
     * @param mixed  $value
4528
     * @param string $message
4529
     *
4530
     * @throws InvalidArgumentException
4531
     *
4532
     * @return void
4533
     */
4534
    public static function allNullOrValidArrayKey($value, $message = '')
4535
    {
4536
        static::isIterable($value);
4537
4538
        foreach ($value as $entry) {
4539
            null === $entry || static::validArrayKey($entry, $message);
4540
        }
4541
    }
4542
4543
    /**
4544
     * @param Countable|array|null $array
4545
     * @param int                  $number
4546
     * @param string               $message
4547
     *
4548
     * @throws InvalidArgumentException
4549
     *
4550
     * @return void
4551
     */
4552
    public static function nullOrCount($array, $number, $message = '')
4553
    {
4554
        null === $array || static::count($array, $number, $message);
4555
    }
4556
4557
    /**
4558
     * @param iterable<Countable|array> $array
4559
     * @param int                       $number
4560
     * @param string                    $message
4561
     *
4562
     * @throws InvalidArgumentException
4563
     *
4564
     * @return void
4565
     */
4566
    public static function allCount($array, $number, $message = '')
4567
    {
4568
        static::isIterable($array);
4569
4570
        foreach ($array as $entry) {
4571
            static::count($entry, $number, $message);
4572
        }
4573
    }
4574
4575
    /**
4576
     * @param iterable<Countable|array|null> $array
4577
     * @param int                            $number
4578
     * @param string                         $message
4579
     *
4580
     * @throws InvalidArgumentException
4581
     *
4582
     * @return void
4583
     */
4584
    public static function allNullOrCount($array, $number, $message = '')
4585
    {
4586
        static::isIterable($array);
4587
4588
        foreach ($array as $entry) {
4589
            null === $entry || static::count($entry, $number, $message);
4590
        }
4591
    }
4592
4593
    /**
4594
     * @param Countable|array|null $array
4595
     * @param int|float            $min
4596
     * @param string               $message
4597
     *
4598
     * @throws InvalidArgumentException
4599
     *
4600
     * @return void
4601
     */
4602
    public static function nullOrMinCount($array, $min, $message = '')
4603
    {
4604
        null === $array || static::minCount($array, $min, $message);
4605
    }
4606
4607
    /**
4608
     * @param iterable<Countable|array> $array
4609
     * @param int|float                 $min
4610
     * @param string                    $message
4611
     *
4612
     * @throws InvalidArgumentException
4613
     *
4614
     * @return void
4615
     */
4616
    public static function allMinCount($array, $min, $message = '')
4617
    {
4618
        static::isIterable($array);
4619
4620
        foreach ($array as $entry) {
4621
            static::minCount($entry, $min, $message);
4622
        }
4623
    }
4624
4625
    /**
4626
     * @param iterable<Countable|array|null> $array
4627
     * @param int|float                      $min
4628
     * @param string                         $message
4629
     *
4630
     * @throws InvalidArgumentException
4631
     *
4632
     * @return void
4633
     */
4634
    public static function allNullOrMinCount($array, $min, $message = '')
4635
    {
4636
        static::isIterable($array);
4637
4638
        foreach ($array as $entry) {
4639
            null === $entry || static::minCount($entry, $min, $message);
4640
        }
4641
    }
4642
4643
    /**
4644
     * @param Countable|array|null $array
4645
     * @param int|float            $max
4646
     * @param string               $message
4647
     *
4648
     * @throws InvalidArgumentException
4649
     *
4650
     * @return void
4651
     */
4652
    public static function nullOrMaxCount($array, $max, $message = '')
4653
    {
4654
        null === $array || static::maxCount($array, $max, $message);
4655
    }
4656
4657
    /**
4658
     * @param iterable<Countable|array> $array
4659
     * @param int|float                 $max
4660
     * @param string                    $message
4661
     *
4662
     * @throws InvalidArgumentException
4663
     *
4664
     * @return void
4665
     */
4666
    public static function allMaxCount($array, $max, $message = '')
4667
    {
4668
        static::isIterable($array);
4669
4670
        foreach ($array as $entry) {
4671
            static::maxCount($entry, $max, $message);
4672
        }
4673
    }
4674
4675
    /**
4676
     * @param iterable<Countable|array|null> $array
4677
     * @param int|float                      $max
4678
     * @param string                         $message
4679
     *
4680
     * @throws InvalidArgumentException
4681
     *
4682
     * @return void
4683
     */
4684
    public static function allNullOrMaxCount($array, $max, $message = '')
4685
    {
4686
        static::isIterable($array);
4687
4688
        foreach ($array as $entry) {
4689
            null === $entry || static::maxCount($entry, $max, $message);
4690
        }
4691
    }
4692
4693
    /**
4694
     * @param Countable|array|null $array
4695
     * @param int|float            $min
4696
     * @param int|float            $max
4697
     * @param string               $message
4698
     *
4699
     * @throws InvalidArgumentException
4700
     *
4701
     * @return void
4702
     */
4703
    public static function nullOrCountBetween($array, $min, $max, $message = '')
4704
    {
4705
        null === $array || static::countBetween($array, $min, $max, $message);
4706
    }
4707
4708
    /**
4709
     * @param iterable<Countable|array> $array
4710
     * @param int|float                 $min
4711
     * @param int|float                 $max
4712
     * @param string                    $message
4713
     *
4714
     * @throws InvalidArgumentException
4715
     *
4716
     * @return void
4717
     */
4718
    public static function allCountBetween($array, $min, $max, $message = '')
4719
    {
4720
        static::isIterable($array);
4721
4722
        foreach ($array as $entry) {
4723
            static::countBetween($entry, $min, $max, $message);
4724
        }
4725
    }
4726
4727
    /**
4728
     * @param iterable<Countable|array|null> $array
4729
     * @param int|float                      $min
4730
     * @param int|float                      $max
4731
     * @param string                         $message
4732
     *
4733
     * @throws InvalidArgumentException
4734
     *
4735
     * @return void
4736
     */
4737
    public static function allNullOrCountBetween($array, $min, $max, $message = '')
4738
    {
4739
        static::isIterable($array);
4740
4741
        foreach ($array as $entry) {
4742
            null === $entry || static::countBetween($entry, $min, $max, $message);
4743
        }
4744
    }
4745
4746
    /**
4747
     * @psalm-pure
4748
     * @psalm-assert list|null $array
4749
     *
4750
     * @param mixed  $array
4751
     * @param string $message
4752
     *
4753
     * @throws InvalidArgumentException
4754
     *
4755
     * @return void
4756
     */
4757
    public static function nullOrIsList($array, $message = '')
4758
    {
4759
        null === $array || static::isList($array, $message);
4760
    }
4761
4762
    /**
4763
     * @psalm-pure
4764
     * @psalm-assert iterable<list> $array
4765
     *
4766
     * @param mixed  $array
4767
     * @param string $message
4768
     *
4769
     * @throws InvalidArgumentException
4770
     *
4771
     * @return void
4772
     */
4773
    public static function allIsList($array, $message = '')
4774
    {
4775
        static::isIterable($array);
4776
4777
        foreach ($array as $entry) {
4778
            static::isList($entry, $message);
4779
        }
4780
    }
4781
4782
    /**
4783
     * @psalm-pure
4784
     * @psalm-assert iterable<list|null> $array
4785
     *
4786
     * @param mixed  $array
4787
     * @param string $message
4788
     *
4789
     * @throws InvalidArgumentException
4790
     *
4791
     * @return void
4792
     */
4793
    public static function allNullOrIsList($array, $message = '')
4794
    {
4795
        static::isIterable($array);
4796
4797
        foreach ($array as $entry) {
4798
            null === $entry || static::isList($entry, $message);
4799
        }
4800
    }
4801
4802
    /**
4803
     * @psalm-pure
4804
     * @psalm-assert non-empty-list|null $array
4805
     *
4806
     * @param mixed  $array
4807
     * @param string $message
4808
     *
4809
     * @throws InvalidArgumentException
4810
     *
4811
     * @return void
4812
     */
4813
    public static function nullOrIsNonEmptyList($array, $message = '')
4814
    {
4815
        null === $array || static::isNonEmptyList($array, $message);
4816
    }
4817
4818
    /**
4819
     * @psalm-pure
4820
     * @psalm-assert iterable<non-empty-list> $array
4821
     *
4822
     * @param mixed  $array
4823
     * @param string $message
4824
     *
4825
     * @throws InvalidArgumentException
4826
     *
4827
     * @return void
4828
     */
4829
    public static function allIsNonEmptyList($array, $message = '')
4830
    {
4831
        static::isIterable($array);
4832
4833
        foreach ($array as $entry) {
4834
            static::isNonEmptyList($entry, $message);
4835
        }
4836
    }
4837
4838
    /**
4839
     * @psalm-pure
4840
     * @psalm-assert iterable<non-empty-list|null> $array
4841
     *
4842
     * @param mixed  $array
4843
     * @param string $message
4844
     *
4845
     * @throws InvalidArgumentException
4846
     *
4847
     * @return void
4848
     */
4849
    public static function allNullOrIsNonEmptyList($array, $message = '')
4850
    {
4851
        static::isIterable($array);
4852
4853
        foreach ($array as $entry) {
4854
            null === $entry || static::isNonEmptyList($entry, $message);
4855
        }
4856
    }
4857
4858
    /**
4859
     * @psalm-pure
4860
     * @psalm-template T
4861
     * @psalm-param mixed|array<T>|null $array
4862
     * @psalm-assert array<string, T>|null $array
4863
     *
4864
     * @param mixed  $array
4865
     * @param string $message
4866
     *
4867
     * @throws InvalidArgumentException
4868
     *
4869
     * @return void
4870
     */
4871
    public static function nullOrIsMap($array, $message = '')
4872
    {
4873
        null === $array || static::isMap($array, $message);
4874
    }
4875
4876
    /**
4877
     * @psalm-pure
4878
     * @psalm-template T
4879
     * @psalm-param iterable<mixed|array<T>> $array
4880
     * @psalm-assert iterable<array<string, T>> $array
4881
     *
4882
     * @param mixed  $array
4883
     * @param string $message
4884
     *
4885
     * @throws InvalidArgumentException
4886
     *
4887
     * @return void
4888
     */
4889
    public static function allIsMap($array, $message = '')
4890
    {
4891
        static::isIterable($array);
4892
4893
        foreach ($array as $entry) {
4894
            static::isMap($entry, $message);
4895
        }
4896
    }
4897
4898
    /**
4899
     * @psalm-pure
4900
     * @psalm-template T
4901
     * @psalm-param iterable<mixed|array<T>|null> $array
4902
     * @psalm-assert iterable<array<string, T>|null> $array
4903
     *
4904
     * @param mixed  $array
4905
     * @param string $message
4906
     *
4907
     * @throws InvalidArgumentException
4908
     *
4909
     * @return void
4910
     */
4911
    public static function allNullOrIsMap($array, $message = '')
4912
    {
4913
        static::isIterable($array);
4914
4915
        foreach ($array as $entry) {
4916
            null === $entry || static::isMap($entry, $message);
4917
        }
4918
    }
4919
4920
    /**
4921
     * @psalm-pure
4922
     * @psalm-template T
4923
     * @psalm-param mixed|array<T>|null $array
4924
     *
4925
     * @param mixed  $array
4926
     * @param string $message
4927
     *
4928
     * @throws InvalidArgumentException
4929
     *
4930
     * @return void
4931
     */
4932
    public static function nullOrIsNonEmptyMap($array, $message = '')
4933
    {
4934
        null === $array || static::isNonEmptyMap($array, $message);
4935
    }
4936
4937
    /**
4938
     * @psalm-pure
4939
     * @psalm-template T
4940
     * @psalm-param iterable<mixed|array<T>> $array
4941
     *
4942
     * @param mixed  $array
4943
     * @param string $message
4944
     *
4945
     * @throws InvalidArgumentException
4946
     *
4947
     * @return void
4948
     */
4949
    public static function allIsNonEmptyMap($array, $message = '')
4950
    {
4951
        static::isIterable($array);
4952
4953
        foreach ($array as $entry) {
4954
            static::isNonEmptyMap($entry, $message);
4955
        }
4956
    }
4957
4958
    /**
4959
     * @psalm-pure
4960
     * @psalm-template T
4961
     * @psalm-param iterable<mixed|array<T>|null> $array
4962
     * @psalm-assert iterable<array<string, T>|null> $array
4963
     * @psalm-assert iterable<!empty|null> $array
4964
     *
4965
     * @param mixed  $array
4966
     * @param string $message
4967
     *
4968
     * @throws InvalidArgumentException
4969
     *
4970
     * @return void
4971
     */
4972
    public static function allNullOrIsNonEmptyMap($array, $message = '')
4973
    {
4974
        static::isIterable($array);
4975
4976
        foreach ($array as $entry) {
4977
            null === $entry || static::isNonEmptyMap($entry, $message);
4978
        }
4979
    }
4980
4981
    /**
4982
     * @psalm-pure
4983
     *
4984
     * @param string|null $value
4985
     * @param string      $message
4986
     *
4987
     * @throws InvalidArgumentException
4988
     *
4989
     * @return void
4990
     */
4991
    public static function nullOrUuid($value, $message = '')
4992
    {
4993
        null === $value || static::uuid($value, $message);
4994
    }
4995
4996
    /**
4997
     * @psalm-pure
4998
     *
4999
     * @param iterable<string> $value
5000
     * @param string           $message
5001
     *
5002
     * @throws InvalidArgumentException
5003
     *
5004
     * @return void
5005
     */
5006
    public static function allUuid($value, $message = '')
5007
    {
5008
        static::isIterable($value);
5009
5010
        foreach ($value as $entry) {
5011
            static::uuid($entry, $message);
5012
        }
5013
    }
5014
5015
    /**
5016
     * @psalm-pure
5017
     *
5018
     * @param iterable<string|null> $value
5019
     * @param string                $message
5020
     *
5021
     * @throws InvalidArgumentException
5022
     *
5023
     * @return void
5024
     */
5025
    public static function allNullOrUuid($value, $message = '')
5026
    {
5027
        static::isIterable($value);
5028
5029
        foreach ($value as $entry) {
5030
            null === $entry || static::uuid($entry, $message);
5031
        }
5032
    }
5033
5034
    /**
5035
     * @psalm-param class-string<Throwable> $class
5036
     *
5037
     * @param Closure|null $expression
5038
     * @param string       $class
5039
     * @param string       $message
5040
     *
5041
     * @throws InvalidArgumentException
5042
     *
5043
     * @return void
5044
     */
5045
    public static function nullOrThrows($expression, $class = 'Exception', $message = '')
5046
    {
5047
        null === $expression || static::throws($expression, $class, $message);
5048
    }
5049
5050
    /**
5051
     * @psalm-param class-string<Throwable> $class
5052
     *
5053
     * @param iterable<Closure> $expression
5054
     * @param string            $class
5055
     * @param string            $message
5056
     *
5057
     * @throws InvalidArgumentException
5058
     *
5059
     * @return void
5060
     */
5061
    public static function allThrows($expression, $class = 'Exception', $message = '')
5062
    {
5063
        static::isIterable($expression);
5064
5065
        foreach ($expression as $entry) {
5066
            static::throws($entry, $class, $message);
5067
        }
5068
    }
5069
5070
    /**
5071
     * @psalm-param class-string<Throwable> $class
5072
     *
5073
     * @param iterable<Closure|null> $expression
5074
     * @param string                 $class
5075
     * @param string                 $message
5076
     *
5077
     * @throws InvalidArgumentException
5078
     *
5079
     * @return void
5080
     */
5081
    public static function allNullOrThrows($expression, $class = 'Exception', $message = '')
5082
    {
5083
        static::isIterable($expression);
5084
5085
        foreach ($expression as $entry) {
5086
            null === $entry || static::throws($entry, $class, $message);
5087
        }
5088
    }
5089
}
5090