From b8392e2dd381756a158e6000e242e8bbe0e88dfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bronis=C5=82aw=20Bia=C5=82ek?= Date: Sun, 21 Feb 2021 15:16:09 +0100 Subject: [PATCH] Add new functions - skip - take --- src/ArrayValue.php | 10 ++++++++++ src/PlainArray.php | 16 ++++++++++++++++ src/PlainStringsArray.php | 10 ++++++++++ src/StringsArray.php | 4 ++++ 4 files changed, 40 insertions(+) diff --git a/src/ArrayValue.php b/src/ArrayValue.php index 8a6424f..85ce905 100644 --- a/src/ArrayValue.php +++ b/src/ArrayValue.php @@ -150,6 +150,16 @@ public function join(ArrayValue $other): ArrayValue; */ public function slice(int $offset, int $length): ArrayValue; + /** + * @phpstan-return ArrayValue + */ + public function skip(int $length): ArrayValue; + + /** + * @phpstan-return ArrayValue + */ + public function take(int $length): ArrayValue; + /** * @phpstan-param ArrayValue $replacement * @phpstan-return ArrayValue diff --git a/src/PlainArray.php b/src/PlainArray.php index b8f0db9..90ecd30 100644 --- a/src/PlainArray.php +++ b/src/PlainArray.php @@ -159,6 +159,22 @@ public function slice(int $offset, int $length): PlainArray return new self(array_slice($this->items, $offset, $length)); } + /** + * @phpstan-return PlainArray + */ + public function skip(int $length): PlainArray + { + return $this->slice($length, $this->count() - $length); + } + + /** + * @phpstan-return PlainArray + */ + public function take(int $length): PlainArray + { + return $this->slice(0, $length); + } + /** * @phpstan-param ArrayValue $replacement * @phpstan-return PlainArray diff --git a/src/PlainStringsArray.php b/src/PlainStringsArray.php index a328816..d917c25 100644 --- a/src/PlainStringsArray.php +++ b/src/PlainStringsArray.php @@ -41,6 +41,16 @@ public function slice(int $offset, int $length): PlainStringsArray return new self($this->strings->slice($offset, $length)); } + public function skip(int $length): PlainStringsArray + { + return $this->slice($length, $this->count() - $length); + } + + public function take(int $length): PlainStringsArray + { + return $this->slice(0, $length); + } + /** * @param StringsArray $replacement */ diff --git a/src/StringsArray.php b/src/StringsArray.php index 92c1a81..5839014 100644 --- a/src/StringsArray.php +++ b/src/StringsArray.php @@ -116,6 +116,10 @@ public function join(ArrayValue $other): StringsArray; public function slice(int $offset, int $length): StringsArray; + public function skip(int $length): StringsArray; + + public function take(int $length): StringsArray; + /** * @param StringsArray $replacement */