NAME
====
Hash-with - Roles for automatically mapping keys in hashes
SYNOPSIS
========
use Hash-with;
my %h1 does Hash-lc = A => 42; # map all keys to lowercase
say %h1; # 42
my %h2 does Hash-uc = a => 42; # map all keys to uppercase
say %h2; # 42
sub ordered($a) { $a.comb.sort.join }
my %h3 does Hash-with[&ordered] = oof => 42; # sort characters of key
say %h3; # 42
DESCRIPTION
===========
Hash::with provides several `role`s that can be mixed in with a `Hash`.
Hash-lc
-------
The role that will convert all keys of a hash to their **lowercase** equivalent before being used to access the hash.
my %h1 does Hash-lc = A => 42; # map all keys to lowercase
say %h1; # 42
This is in fact an optimized version of `does Hash-with[&lc]`.
Hash-uc
-------
The role that will convert all keys of a hash to their **uppercase** equivalent before being used to access the hash.
my %h2 does Hash-uc = a => 42; # map all keys to uppercase
say %h2; # 42
This is in fact an optimized version of `does Hash-with[&uc]`.
Hash-with
---------
The role that will convert all keys of a hash according to a `mapper` function before being used to access the hash.
sub ordered($a) { $a.comb.sort.join }
my %h3 does Hash-with[&ordered] = oof => 42; # order all keys
say %h3; # 42
AUTHOR
======
Elizabeth Mattijsen
Source can be located at: https://github.com/lizmat/Hash-with . Comments and Pull Requests are welcome.
COPYRIGHT AND LICENSE
=====================
Copyright 2018,2021 Elizabeth Mattijsen
This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.