@@ -49,9 +49,9 @@ public function __construct(string $buffer = '')
49
49
}
50
50
51
51
/**
52
- * @param string|self $value
52
+ * @param string|static $value
53
53
*
54
- * @return self
54
+ * @return static
55
55
*/
56
56
public function append ($ value ): self
57
57
{
@@ -75,11 +75,13 @@ public function read(int $n, int $offset = 0): string
75
75
{
76
76
if ($ this ->size < $ offset + $ n ) {
77
77
throw new Exception \BufferUnderflow ;
78
- } elseif ($ offset === 0 && $ this ->size === $ offset + $ n ) {
78
+ }
79
+
80
+ if ($ offset === 0 && $ this ->size === $ offset + $ n ) {
79
81
return $ this ->data ;
80
- } else {
81
- return \substr ($ this ->data , $ offset , $ n );
82
82
}
83
+
84
+ return \substr ($ this ->data , $ offset , $ n );
83
85
}
84
86
85
87
/**
@@ -91,43 +93,43 @@ public function consume(int $n): string
91
93
{
92
94
if ($ this ->size < $ n ) {
93
95
throw new Exception \BufferUnderflow ;
94
- } elseif ($ this ->size === $ n ) {
96
+ }
97
+
98
+ if ($ this ->size === $ n ) {
95
99
$ buffer = $ this ->data ;
96
100
97
101
$ this ->data = '' ;
98
102
$ this ->size = 0 ;
99
-
100
- return $ buffer ;
101
103
} else {
102
104
$ buffer = \substr ($ this ->data , 0 , $ n );
103
105
104
106
$ this ->data = \substr ($ this ->data , $ n );
105
107
$ this ->size -= $ n ;
106
-
107
- return $ buffer ;
108
108
}
109
+
110
+ return $ buffer ;
109
111
}
110
112
111
113
/**
112
114
* @param int $n
113
115
*
114
- * @return self
116
+ * @return static
115
117
*/
116
118
public function discard (int $ n ): self
117
119
{
118
120
if ($ this ->size < $ n ) {
119
121
throw new Exception \BufferUnderflow ;
120
- } elseif ($ this ->size === $ n ) {
122
+ }
123
+
124
+ if ($ this ->size === $ n ) {
121
125
$ this ->data = '' ;
122
126
$ this ->size = 0 ;
123
-
124
- return $ this ;
125
127
} else {
126
128
$ this ->data = \substr ($ this ->data , $ n );
127
129
$ this ->size -= $ n ;
128
-
129
- return $ this ;
130
130
}
131
+
132
+ return $ this ;
131
133
}
132
134
133
135
/**
@@ -139,11 +141,9 @@ public function slice(int $n): self
139
141
{
140
142
if ($ this ->size < $ n ) {
141
143
throw new Exception \BufferUnderflow ;
142
- } elseif ($ this ->size === $ n ) {
143
- return new static ($ this ->data );
144
- } else {
145
- return new static (\substr ($ this ->data , 0 , $ n ));
146
144
}
145
+
146
+ return $ this ->size === $ n ? new static ($ this ->data ) : new static (\substr ($ this ->data , 0 , $ n ));
147
147
}
148
148
149
149
/**
@@ -155,22 +155,21 @@ public function shift(int $n): self
155
155
{
156
156
if ($ this ->size < $ n ) {
157
157
throw new Exception \BufferUnderflow ;
158
- } elseif ($ this ->size === $ n ) {
158
+ }
159
+
160
+ if ($ this ->size === $ n ) {
159
161
$ buffer = $ this ->data ;
160
162
161
163
$ this ->data = '' ;
162
164
$ this ->size = 0 ;
163
-
164
- return new static ($ buffer );
165
-
166
165
} else {
167
166
$ buffer = \substr ($ this ->data , 0 , $ n );
168
167
169
168
$ this ->data = \substr ($ this ->data , $ n );
170
169
$ this ->size -= $ n ;
171
-
172
- return new static ($ buffer );
173
170
}
171
+
172
+ return new static ($ buffer );
174
173
}
175
174
176
175
/**
@@ -205,7 +204,7 @@ public function empty(): bool
205
204
/**
206
205
* @param int $value
207
206
*
208
- * @return self
207
+ * @return static
209
208
*/
210
209
public function appendInt8 (int $ value ): self
211
210
{
@@ -233,7 +232,7 @@ public function consumeInt8(): int
233
232
/**
234
233
* @param int $value
235
234
*
236
- * @return self
235
+ * @return static
237
236
*/
238
237
public function appendInt16 (int $ value ): self
239
238
{
@@ -261,7 +260,7 @@ public function consumeInt16(): int
261
260
/**
262
261
* @param int $value
263
262
*
264
- * @return self
263
+ * @return static
265
264
*/
266
265
public function appendInt32 (int $ value ): self
267
266
{
@@ -289,7 +288,7 @@ public function consumeInt32(): int
289
288
/**
290
289
* @param int $value
291
290
*
292
- * @return self
291
+ * @return static
293
292
*/
294
293
public function appendInt64 (int $ value ): self
295
294
{
@@ -313,13 +312,12 @@ public function readInt64(int $offset = 0): int
313
312
$ s = $ this ->read (8 , $ offset );
314
313
315
314
if (self ::$ native64BitPack ) {
316
- $ r = \unpack ("q " , self ::swapEndian64 ($ s ))[1 ];
317
- } else {
318
- $ d = \unpack ("Lh/Ll " , self ::swapHalvedEndian64 ($ s ));
319
- $ r = $ d ["h " ] << 32 | $ d ["l " ];
315
+ return \unpack ("q " , self ::swapEndian64 ($ s ))[1 ];
320
316
}
317
+
318
+ $ d = \unpack ("Lh/Ll " , self ::swapHalvedEndian64 ($ s ));
321
319
322
- return $ r ;
320
+ return $ d [ " h " ] << 32 | $ d [ " l " ] ;
323
321
}
324
322
325
323
/**
@@ -330,19 +328,18 @@ public function consumeInt64(): int
330
328
$ s = $ this ->consume (8 );
331
329
332
330
if (self ::$ native64BitPack ) {
333
- $ r = \unpack ("q " , self ::swapEndian64 ($ s ))[1 ];
334
- } else {
335
- $ d = \unpack ("Lh/Ll " , self ::swapHalvedEndian64 ($ s ));
336
- $ r = $ d ["h " ] << 32 | $ d ["l " ];
331
+ return \unpack ("q " , self ::swapEndian64 ($ s ))[1 ];
337
332
}
333
+
334
+ $ d = \unpack ("Lh/Ll " , self ::swapHalvedEndian64 ($ s ));
338
335
339
- return $ r ;
336
+ return $ d [ " h " ] << 32 | $ d [ " l " ] ;
340
337
}
341
338
342
339
/**
343
340
* @param int $value
344
341
*
345
- * @return self
342
+ * @return static
346
343
*/
347
344
public function appendUint8 (int $ value ): self
348
345
{
@@ -374,7 +371,7 @@ public function consumeUint8(): int
374
371
/**
375
372
* @param int $value
376
373
*
377
- * @return self
374
+ * @return static
378
375
*/
379
376
public function appendUint16 (int $ value ): self
380
377
{
@@ -406,7 +403,7 @@ public function consumeUint16(): int
406
403
/**
407
404
* @param int $value
408
405
*
409
- * @return self
406
+ * @return static
410
407
*/
411
408
public function appendUint32 (int $ value ): self
412
409
{
@@ -438,7 +435,7 @@ public function consumeUint32(): int
438
435
/**
439
436
* @param int $value
440
437
*
441
- * @return self
438
+ * @return static
442
439
*/
443
440
public function appendUint64 (int $ value ): self
444
441
{
@@ -462,13 +459,12 @@ public function readUint64(int $offset = 0): int
462
459
$ s = $ this ->read (8 , $ offset );
463
460
464
461
if (self ::$ native64BitPack ) {
465
- $ r = \unpack ("Q " , self ::swapEndian64 ($ s ))[1 ];
466
- } else {
467
- $ d = \unpack ("Lh/Ll " , self ::swapHalvedEndian64 ($ s ));
468
- $ r = $ d ["h " ] << 32 | $ d ["l " ];
462
+ return \unpack ("Q " , self ::swapEndian64 ($ s ))[1 ];
469
463
}
464
+
465
+ $ d = \unpack ("Lh/Ll " , self ::swapHalvedEndian64 ($ s ));
470
466
471
- return $ r ;
467
+ return $ d [ " h " ] << 32 | $ d [ " l " ] ;
472
468
}
473
469
474
470
/**
@@ -479,19 +475,18 @@ public function consumeUint64(): int
479
475
$ s = $ this ->consume (8 );
480
476
481
477
if (self ::$ native64BitPack ) {
482
- $ r = \unpack ("Q " , self ::swapEndian64 ($ s ))[1 ];
483
- } else {
484
- $ d = \unpack ("Lh/Ll " , self ::swapHalvedEndian64 ($ s ));
485
- $ r = $ d ["h " ] << 32 | $ d ["l " ];
478
+ return \unpack ("Q " , self ::swapEndian64 ($ s ))[1 ];
486
479
}
487
480
488
- return $ r ;
481
+ $ d = \unpack ("Lh/Ll " , self ::swapHalvedEndian64 ($ s ));
482
+
483
+ return $ d ["h " ] << 32 | $ d ["l " ];
489
484
}
490
485
491
486
/**
492
487
* @param float $value
493
488
*
494
- * @return self
489
+ * @return static
495
490
*/
496
491
public function appendFloat (float $ value ): self
497
492
{
@@ -519,7 +514,7 @@ public function consumeFloat(): float
519
514
/**
520
515
* @param float $value
521
516
*
522
- * @return self
517
+ * @return static
523
518
*/
524
519
public function appendDouble ($ value ): self
525
520
{
0 commit comments