basti1302/elm-non-empty-array - version: 2.1.0

for more information visit the package's GitHub page

Package contains the following modules:

Array.NonEmpty for Elm

Build Status

An array that always contains at least one element.

Additionaly, it can track a currently selected index, which is guaranteed to point to an existing element in the array.

These additional constraints enable two functions, namely getFirst and getSelected to return a value directly instead of a Maybe.

Inspired by mgold/elm-nonempty-list.

import Array.NonEmpty as NEA exposing (NonEmptyArray)


oneElement : NonEmptyArray
oneElement = NEA.fromElement 13

twoElements : NonEmptyArray
twoElements = NEA.push 42 one

createdFromList : Maybe NonEmptyArray
createdFromList = NEA.fromList ["a", "b", "b"]

All functions from core Array are available, with the exception of isEmpty (which would be an alias for False).

In addition, non-empty-array offers additional functions made possible due to the additional constraints:

Finally, it offers update, removeAt and removeAtSafe, which are not in core Array but inspired by Array.Extra.

Tests

The easiest way to run the tests is to install the npm packages elm-test and elm-verify-examples globally:

npm i elm-test -g
npm i elm-verify-examples -g

Then, from the project root directory, run

elm-verify-examples && elm-test

This will require downloading some packages on the first run.

Version History

License

This library uses the BSD3 License. See LICENSE for more information.