vec1 1.2.0

a std Vec wrapper assuring that it has at least 1 element
vec1 [![](]( [![vec1](]( [![License](]( [![License](](

This crate provides a rust `std::vec::Vec` wrapper with type
guarantees to contain at least 1 element. This is useful if
you build a API which sometimes has such constraints e.g. you
need at least one target server address but there can be more.


extern crate vec1;

use vec1::Vec1;

fn main() {
    // vec1![] makes sure there is at least one element
    // at compiler time
    //let names = vec1! [ ];
    let names = vec1! [ "Liz" ];

fn greet(names: Vec1<&str>) {
    // methods like first/last which return a Option on Vec do
    // directly return the value, we know it's possible
    let first = names.first();
    println!("hallo {}", first);
    for name in names.iter().skip(1) {
        println!("  who is also know as {}", name)



Licensed under either of

- Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall
be dual licensed as above, without any additional terms or conditions.

Change Log