Skip to content

Repository files navigation

Simple tuple implementation

Code Coverage Badge

This component is simple implementation of immutable ordered sequence of elements with strict types. Which means that once tuple created it can't be immuted. Tuple also provide elements of the same type.

Installation

composer require rocketfellows/tuple

Usage example

Typed item class:

class TupleItem
{
private$id;
publicfunction__construct(int$id)
{
$this->id = $id;
}
publicfunctiongetId(): int
{
return$this->id;
}
}

Items tuple implementation:

userocketfellows\tuple\Tuple;
class Items extends Tuple
{
publicfunction__construct(TupleItem ...$items)
{
parent::__construct(...$items);
}
publicfunctioncurrent(): ?TupleItem
{
returnparent::current();
}
}

Load tuple and loop through:

$firstTupleItem = newTupleItem(1);
$secondTupleItem = newTupleItem(2);
$thirdTupleItem = newTupleItem(3);
$items = newItems($firstTupleItem, $secondTupleItem, $thirdTupleItem);
foreach ($itemsas$item) {
print_r($item->getId());
}

Result:

123

Contributing

Welcome to pull requests. If there is a major changes, first please open an issue for discussion.

Please make sure to update tests as appropriate.

About

Simple implementation of immutable ordered sequence of elements with strict types. Which means that once tuple created it can't be immuted. Tuple also provide elements of the same type.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages