# capillary
Library for HashMap-like storage of key-value pairs, but allowing for step-by-step (partial) search of value.
Internally it uses an implementation of a tree. This makes it possible to search for a value by providing partial steps.
## Use case
One use case, that served as inspiration to create this crate, is replacement inside of a string.
For example, we might want to replace all occurances of keys with their values. Naive and inefficient way is to iterate over keys and call
`string.replace` for every key.
The idea behind `capillary` is to iterate over string once and be able to replace all occurances in a linear manner. Any character can lead either to
a valid, or invalid state. That way, part of the key can be used to go towards some (potential) values. As soon as one unique value is reached,
it can be returned.