An open API service indexing awesome lists of open source software.

https://github.com/regexident/interner

Swift implementation of general-purpose interners for every use case
https://github.com/regexident/interner

flyweight-pattern interning string-interning

Last synced: 3 months ago
JSON representation

Swift implementation of general-purpose interners for every use case

Awesome Lists containing this project

README

        

# Interner

Fast general-purpose interners for every use case

Interners take complex values and map them to [trivially-comparable stand-ins](https://en.wikipedia.org/wiki/Flyweight_pattern) that can later be resolved back to their source values.
Interners are often found in software like parsers, language interpreters, and compilers; they can be used whenever a given algorithm compares its inputs by identity only.

## Examples

```swift
import Interner

let interner = Interner()

let string = "Hello"
let symbol = interner.interned(string)
let resolved = interner.lookup(symbol)

XCTAssert(resolved == string)
```

## License

This project is licensed under the [**MPL-2.0**](https://www.tldrlegal.com/l/mpl-2.0) – see the [LICENSE.md](LICENSE.md) file for details.