File tree Expand file tree Collapse file tree 4 files changed +25
-31
lines changed Expand file tree Collapse file tree 4 files changed +25
-31
lines changed Original file line number Diff line number Diff line change @@ -20,14 +20,8 @@ final class Dictionary implements MemberOrderedMap
20
20
/** @var array<string, Item|InnerList<int, Item>> */
21
21
private array $ members = [];
22
22
23
- /**
24
- * @param iterable<string, InnerList<int, Item>|Item|DataType> $members
25
- */
26
- private function __construct (iterable $ members = [])
23
+ private function __construct ()
27
24
{
28
- foreach ($ members as $ key => $ member ) {
29
- $ this ->set ($ key , $ member );
30
- }
31
25
}
32
26
33
27
/**
@@ -40,7 +34,12 @@ private function __construct(iterable $members = [])
40
34
*/
41
35
public static function fromAssociative (iterable $ members = []): self
42
36
{
43
- return new self ($ members );
37
+ $ instance = new self ();
38
+ foreach ($ members as $ key => $ member ) {
39
+ $ instance ->set ($ key , $ member );
40
+ }
41
+
42
+ return $ instance ;
44
43
}
45
44
46
45
/**
Original file line number Diff line number Diff line change 17
17
final class InnerList implements MemberList, ParameterAccess
18
18
{
19
19
/** @var array<int, Item> */
20
- private array $ members ;
20
+ private array $ members = [] ;
21
21
22
- private function __construct (
23
- public readonly Parameters $ parameters ,
24
- Item ...$ members
25
- ) {
26
- $ this ->members = array_values ($ members );
22
+ private function __construct (public readonly Parameters $ parameters )
23
+ {
27
24
}
28
25
29
26
public static function from (Item |ByteSequence |Token |bool |int |float |string ...$ members ): self
@@ -37,12 +34,12 @@ public static function from(Item|ByteSequence|Token|bool|int|float|string ...$me
37
34
*/
38
35
public static function fromList (iterable $ members = [], iterable $ parameters = []): self
39
36
{
40
- $ newMembers = [] ;
37
+ $ instance = new self (Parameters:: fromAssociative ( $ parameters )) ;
41
38
foreach ($ members as $ member ) {
42
- $ newMembers [] = self ::filterMember ($ member );
39
+ $ instance -> push ( self ::filterMember ($ member) );
43
40
}
44
41
45
- return new self (Parameters:: fromAssociative ( $ parameters ), ... $ newMembers ) ;
42
+ return $ instance ;
46
43
}
47
44
48
45
private static function filterMember (StructuredField |ByteSequence |Token |bool |int |float |string $ member ): Item
Original file line number Diff line number Diff line change 19
19
final class OrderedList implements MemberList
20
20
{
21
21
/** @var array<int, Item|InnerList<int, Item>> */
22
- private array $ members ;
22
+ private array $ members = [] ;
23
23
24
- private function __construct (Item | InnerList ... $ members )
24
+ private function __construct ()
25
25
{
26
- $ this ->members = array_values ($ members );
27
26
}
28
27
29
28
/**
@@ -41,12 +40,12 @@ public static function from(InnerList|Item|ByteSequence|Token|bool|int|float|str
41
40
*/
42
41
public static function fromList (iterable $ members = []): self
43
42
{
44
- $ newMembers = [] ;
43
+ $ instance = new self () ;
45
44
foreach ($ members as $ member ) {
46
- $ newMembers [] = self ::filterMember ($ member );
45
+ $ instance -> push ( self ::filterMember ($ member) );
47
46
}
48
47
49
- return new self (... $ newMembers ) ;
48
+ return $ instance ;
50
49
}
51
50
52
51
private static function filterMember (StructuredField |ByteSequence |Token |bool |int |float |string $ member ): InnerList |Item
Original file line number Diff line number Diff line change @@ -23,14 +23,8 @@ final class Parameters implements MemberOrderedMap
23
23
/** @var array<string, Item> */
24
24
private array $ members = [];
25
25
26
- /**
27
- * @param iterable<string, Item|DataType> $members
28
- */
29
- private function __construct (iterable $ members = [])
26
+ private function __construct ()
30
27
{
31
- foreach ($ members as $ key => $ value ) {
32
- $ this ->set ($ key , $ value );
33
- }
34
28
}
35
29
36
30
/**
@@ -73,7 +67,12 @@ private static function formatMember(StructuredField|ByteSequence|Token|bool|int
73
67
*/
74
68
public static function fromAssociative (iterable $ members = []): self
75
69
{
76
- return new self ($ members );
70
+ $ instance = new self ();
71
+ foreach ($ members as $ key => $ member ) {
72
+ $ instance ->set ($ key , $ member );
73
+ }
74
+
75
+ return $ instance ;
77
76
}
78
77
79
78
/**
You can’t perform that action at this time.
0 commit comments