An open API service indexing awesome lists of open source software.

https://github.com/cloudhead/nonempty

Correct by construction non-empty list
https://github.com/cloudhead/nonempty

Last synced: 11 months ago
JSON representation

Correct by construction non-empty list

Awesome Lists containing this project

README

          

# Correct by Construction Non-Empty List

This package exposes a type `NonEmpty` with a data representation
that guarantees non-emptiness statically:

struct NonEmpty(T, Vec)

The library is meant to have an interface similar to `std::vec::Vec`:

use nonempty::NonEmpty;

let mut l = NonEmpty::new(42);

assert_eq!(l.first(), &42);

l.push(36);
l.push(58);

let v: Vec = l.into();
assert_eq!(v, vec![42, 36, 58]);