Swiftpack.co -  pumperknickle/AwesomeDictionary as Swift Package
Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
pumperknickle/AwesomeDictionary
Delightful Dictionaries in Swift
.package(url: "https://github.com/pumperknickle/AwesomeDictionary.git", from: "0.1.1")

Awesome Dictionary

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.

Features

  1. Functional
  • All operations create new objects.
  • All mappings in AwesomeDictionary are immutable.
  1. Generic
  • Can be used with any Key type that conforms to BinaryEncodable.
  • Can be used with any Value type that conforms to Codable.
  1. Deterministic
  • 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.
  1. Efficient
  • Modify existing dictionaries efficiently and functionally.
  1. Codable
  • Easily serializable to and from JSON and other encodings.

Installation

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")
]

Usage

Importing

Use AwesomeDictionary by including it in the imports of your swift file

import AwesomeDictionary

Initialization

Create an empty generic mapping

let newMapping = Mapping<String, [[String]]>()

Getting

Use subscript to get the value of a key.

let value = newMapping["foo"]

Setting

When setting, a new structure is returned with the new key value pair inserted.

let modifiedMap = newMapping.setting(key: "foo", value: [["fooValue"]])

Deleting

When deleting, a new structure is returned with the entry corresponding to the key deleted.

let modifiedMap = newMapping.deleting(key: "foo")

GitHub

link
Stars: 0
Last commit: 4 weeks ago

Ad: Job Offers

iOS Software Engineer @ Perry Street Software
Perry Street Software is Jack’d and SCRUFF. We are two of the world’s largest gay, bi, trans and queer social dating apps on iOS and Android. Our brands reach more than 20 million members worldwide so members can connect, meet and express themselves on a platform that prioritizes privacy and security. We invest heavily into SwiftUI and using Swift Packages to modularize the codebase.

Release Notes

4 weeks ago

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API