Awesome Dictionary is a pure Swift implementation of a Dictionary or an abstract data type composed of a collection of (key, value) pairs, such that each possible key appears at most once in the collection. Instead of using hash tables, it uses a radix trie, which is essentially a compressed trie.
- All operations create new objects.
- All mappings in AwesomeDictionary are immutable.
- Can be used with any Key type that conforms to BinaryEncodable.
- Can be used with any Value type that conforms to Codable.
- Two dictionaries with the same key value pairs are guaranteed to be the same.
- Two dictionaries with the same key value pairs are guaranteed to serialized the same byte for byte.
- Modify existing dictionaries efficiently and functionally.
- Easily serializable to and from JSON and other encodings.
Swift Package Manager
Add AwesomeDictionary to Package.swift and the appropriate targets
dependencies: [ .package(url: "https://github.com/pumperknickle/AwesomeDictionary.git", from: "0.0.1") ]
Use AwesomeDictionary by including it in the imports of your swift file
Create an empty generic mapping
let newMapping = Mapping<String, [[String]]>()
Use subscript to get the value of a key.
let value = newMapping["foo"]
When setting, a new structure is returned with the new key value pair inserted.
let modifiedMap = newMapping.setting(key: "foo", value: [["fooValue"]])
When deleting, a new structure is returned with the entry corresponding to the key deleted.
let modifiedMap = newMapping.deleting(key: "foo")
You may find interesting