Coder Social home page Coder Social logo

ordereddictionary's Introduction

OrderedDictionary

Swift 4.2+ Swift Package Manager Carthage License: MIT Twitter: @lukaskubanek

OrderedDictionary is a lightweight implementation of an ordered dictionary data structure in Swift.

The OrderedDictionary struct is a generic collection that combines the features of Dictionary and Array data structures 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 to collections in the Swift standard library like accessing contents by keys or indices, inserting and removing elements, iterating, sorting, filtering, etc.

Internally, OrderedDictionary uses a backing storage composed of a Dictionary for storing the key-value pairs and an Array for managing the ordered keys. This architecture makes it not the most pefromant implementation possible, but it gets its job done while reusing most functionality from the Swift standard library.

Requirements

  • Swift 4.2+
  • Xcode 10.0+
  • iOS 8.0+ / macOS 10.10+

For support of Swift 4.0 and 4.1 please refer to version 2.x of this library. The Xcode and OS requirements apply only when the library is integrated as a framework or via the Xcode project.

Installation

Swift Package Manager

To install OrderedDictionary using the Swift Package Manager, add it as a dependency into your Package.swift file:

let package = Package(
    ...
    dependencies: [
        .package(url: "https://github.com/lukaskubanek/OrderedDictionary.git", from: "3.0.1")
    ],
    ...
)

Carthage

To install OrderedDictionary using Carthage, add it as a dependency into your Cartfile:

github "lukaskubanek/LoremSwiftum"

Then drag either the OrderedDictionary.xcodeproj or the OrderedDictionary.framework into your Xcode project/workspace and link your target against the OrderedDictionary.framework. Make sure that the framework gets copied to your application bundle.

Git Submodules

You can also install OrderedDictionary via Git submodules and integrate the project OrderedDictionary.xcodeproj from the submodule directly into your Xcode workspace.

⚠️ Note About CocoaPods

Although there has been a high demand for CocoaPods support, this distribution method won't be officially supported by this library. If you really want to integrate this library via CocoaPods, you can create and maintain a custom podspec (see the last section of this post).

Usage & Docs

For the usage of this library please refer to the example playground. For documentation please refer to the documentation comments.

ordereddictionary's People

Contributors

callo90 avatar galcohen avatar gl2748 avatar graphiclife avatar lukaskubanek avatar maicki avatar mbrgm avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.