ati

Crates.ioati
lib.rsati
version0.2.0
sourcesrc
created_at2023-12-01 07:28:03.390231
updated_at2023-12-01 09:55:43.231933
descriptionIntroduces the `At` trait, which allows collections to be indexed by `u|i{8,16,32,64,128}` and `isize`. Supports Python-like negative index, where -1 is last element.
homepage
repositoryhttps://github.com/KlasafGeijerstam/ati
max_upload_size
id1054842
size5,651
Klas af Geijerstam (KlasafGeijerstam)

documentation

README

Ati, ergonomic indexing of Vec

The ati crate introduces the At trait, and implements it for Vec, VecDeque, [T; L] and LinkedList. The At trait adds a at and at_mut method, which allows collections to be indexed by u8, u16, u32, u64, u128, as well as i8, i16, i32, i64, i128, isize.

Negative indexes allows for indexing in the reverse direction, exactly how the Javascript at function works, or Python indexing.

Examples

use ati::At;

fn main() {
    let mut v = vec![1,2,3];

    assert_eq!(1, *v.at(0u8));
    assert_eq!(3, *v.at(-1u128));

    *v.at_mut(-1) = 5;

    assert_eq!(&[1, 2, 5], &v[..]);
}
Commit count: 2

cargo fmt