helpers4 0.0.6

General-purpose Rust helpers, one crate, one feature per module (string, array, ...)
Documentation
// This file is part of helpers4.
// Copyright (C) 2025 baxyz
// SPDX-License-Identifier: LGPL-3.0-or-later

use super::*;

#[test]
fn indexes_by_key() {
    let indexed = key_by(&["apple", "bob", "cherry"], |s| s.len());
    assert_eq!(indexed[&5], "apple");
    assert_eq!(indexed[&3], "bob");
    assert_eq!(indexed[&6], "cherry");
    assert_eq!(indexed.len(), 3);
}

#[test]
fn the_last_element_wins_on_a_shared_key() {
    let indexed = key_by(&[("a", 1), ("b", 1)], |&(_, k)| k);
    assert_eq!(indexed[&1], ("b", 1));
}

#[test]
fn empty_input_gives_empty_map() {
    assert!(key_by(&[] as &[i32], |x| *x).is_empty());
}