OrderedDictionary
OrderedDictionary is a lightweight implementation of an ordered dictionary data structure in Swift.
The OrderedDictionary
struct is a generic collection which combines the features of Dictionary
and Array
from the Swift standard library. Like Dictionary
it stores key-value pairs with each key being unique and maps each key to an associated value. Like Array
it stores those pairs sorted and accessible by a zero-based integer index.
OrderedDictionary
provides similar APIs like collections from the Swift standard library. This includes accessing contents by keys or indices, inserting and removing elements, iterating, sorting etc.
Internally, OrderedDictionary
uses a backing store composed of an instance of Dictionary
for storing the key-value pairs and an instance of Array
for managing the ordered keys. This means it is not the most performant implementation possible, but it gets its job done by reusing most functionality from the Swift standard library.
Requirements
- Swift 4.0+
- Xcode 9.2+
- iOS 8.0+ / macOS 10.10+
Installation
This library is distributed as a Swift framework and can be integrated into your project in following ways:
Carthage
The easiest way is to use the package manager Carthage.
- Add
github "lukaskubanek/OrderedDictionary"
to yourCartfile
. - Run
carthage bootstrap
. - Drag either the
OrderedDictionary.xcodeproj
or theOrderedDictionary.framework
into your project/workspace and link your target against theOrderedDictionary.framework
. - Make sure the framework gets copied to your application bundle.
- Import the framework using
import OrderedDictionary
.
Submodule & Xcode Project
Another option is to use Git submodules and integrating the Xcode project OrderedDictionary.xcodeproj
directly to your Xcode workspace.
Usage & Docs
For the usage of this library please refer to the example playground. For documentation please refer to the documentation comments.
Changelog
The changelog is managed on the GitHub releases page.
Author
Lukas Kubanek // lukaskubanek.com // @kubanekl
License
OrderedDictionary is provided under the MIT License.