Identity-based maps.
Find a file
2025-04-08 12:40:25 +02:00
src Update repository address; Remove Serde tests; Fix and update lints; Clean up code; 2025-04-08 12:40:25 +02:00
.gitignore Add gitignore; Add changelog; Add Cargo manifest; Configure lints; Enable 'allocator_api'; Add 'IdentityMap' type; Implement 'Default', 'IntoIterator', 'Hash', 'Index', and 'IndexMut' for 'IdentityMap'; Implement 'IntoIterator' for '&IdentityMap' and '&mut IdentityMap'; Add 'new' and 'new_in' constructors to 'IdentityMap'; Add 'with_capacity' and 'with_capacity_in' constructors to 'IdentityMap'; Add 'allocator' method to 'IdentityMap'; Add 'iter' and 'iter_mut' methods to 'IdentityMap'; Add 'get' and 'get_mut' methods to 'IdentityMap'; Add 'capacity', 'len' and 'is_emtpy' methods to 'IdentityMap'; Add 'insert' and 'remove' methods to 'IdentityMap'; Add 'contains' method to 'IdentityMap'; Add 'as_ptr' and 'as_mut_ptr' methods to 'IdentityMap'; Add 'reserve' method to 'IdentityMap'; Add 'IntoIter', 'Iter', and 'IterMut' iterators; Implement 'Default', 'Iterator', 'DoubleEndedIterator', 'ExactSizedIterator', and 'FusedIterator' for 'IntoIter', 'Iter', and 'IterMut'; Add tests; Add 'into_raw_parts' and 'into_raw_parts_with_alloc' deconstructors to 'IdentityMap'; Add 'as_slice' and 'as_mut_slice' methods to 'IdentityMap'; Implement 'Send' and 'Sync' for 'IdentityMap'; Add 'from_raw_parts' and 'from_raw_parts_in' constructors to 'IdentityMap'; License under an MIT licence; 2025-02-03 13:41:01 +01:00
Cargo.toml Update repository address; Remove Serde tests; Fix and update lints; Clean up code; 2025-04-08 12:40:25 +02:00
CHANGELOG.md Update repository address; Remove Serde tests; Fix and update lints; Clean up code; 2025-04-08 12:40:25 +02:00
clippy.toml Implement 'serde::Deserialize' for 'IdentityMap' and 'IdentitySet'; Update lints; Enable all features on 'docs.rs'; Update tests; 2025-02-15 12:45:41 +01:00
doc-icon.svg Dual-license under MIT and/or Apache 2.0; Update lints; Update readme; Add 'pop_first' and 'pop_last' methods to 'IdentityMap' and 'IdentitySet'; Update 'must_use' and 'track_caller' usage; Update logo; Add 'first_key_value' and 'last_key_value' methods to 'IdentityMap'; Add 'first' and 'last' methods to 'IdentitySet'; Add 'append' method to 'IdentityMap' and 'IdentitySet'; Add 'replace' method to 'IdentitySet'; 2025-03-03 12:41:48 +01:00
identity_map.svg Dual-license under MIT and/or Apache 2.0; Update lints; Update readme; Add 'pop_first' and 'pop_last' methods to 'IdentityMap' and 'IdentitySet'; Update 'must_use' and 'track_caller' usage; Update logo; Add 'first_key_value' and 'last_key_value' methods to 'IdentityMap'; Add 'first' and 'last' methods to 'IdentitySet'; Add 'append' method to 'IdentityMap' and 'IdentitySet'; Add 'replace' method to 'IdentitySet'; 2025-03-03 12:41:48 +01:00
LICENCE-APACHE Dual-license under MIT and/or Apache 2.0; Update lints; Update readme; Add 'pop_first' and 'pop_last' methods to 'IdentityMap' and 'IdentitySet'; Update 'must_use' and 'track_caller' usage; Update logo; Add 'first_key_value' and 'last_key_value' methods to 'IdentityMap'; Add 'first' and 'last' methods to 'IdentitySet'; Add 'append' method to 'IdentityMap' and 'IdentitySet'; Add 'replace' method to 'IdentitySet'; 2025-03-03 12:41:48 +01:00
LICENCE-MIT Dual-license under MIT and/or Apache 2.0; Update lints; Update readme; Add 'pop_first' and 'pop_last' methods to 'IdentityMap' and 'IdentitySet'; Update 'must_use' and 'track_caller' usage; Update logo; Add 'first_key_value' and 'last_key_value' methods to 'IdentityMap'; Add 'first' and 'last' methods to 'IdentitySet'; Add 'append' method to 'IdentityMap' and 'IdentitySet'; Add 'replace' method to 'IdentitySet'; 2025-03-03 12:41:48 +01:00
README.md Dual-license under MIT and/or Apache 2.0; Update lints; Update readme; Add 'pop_first' and 'pop_last' methods to 'IdentityMap' and 'IdentitySet'; Update 'must_use' and 'track_caller' usage; Update logo; Add 'first_key_value' and 'last_key_value' methods to 'IdentityMap'; Add 'first' and 'last' methods to 'IdentitySet'; Add 'append' method to 'IdentityMap' and 'IdentitySet'; Add 'replace' method to 'IdentitySet'; 2025-03-03 12:41:48 +01:00

identity_map

identity_map is a Rust crate for mapping keys with associated values.

This crate defines the IdentityMap and IdentitySet as analogues to the standard library's HashMap and HashSet. Contrary to the standard library, however, keys are in the identity collections transformed as if by using the identity function.

Using the identity function may make tables larger in size (depending on the key type), but does also allow for making the very same tables non-collidable. The collections provided by this crate are ordered and required keys implementing Ord.

Copyright 2025 Gabriel Bjørnager Jensen.

identity_map is distributed under either an MIT licence (see LICENCE-MIT) or version 2.0 of the Apache License (see LICENCE-APACHE), at your option.