swift-cache

A type-safe swifty wrapper around NSCache
.
Getting Started
Add swift-cache
as a dependency to your project using SPM.
.package(url: "https://github.com/binaryscraping/swift-cache", from: "0.1.0"),
And in your application/target, add "Cache"
to your "dependencies"
.
.target(
name: "YourTarget",
dependencies: [
.product(name: "Cache", package: "swift-cache"),
]
)
Usage
Cache
is accessed through a Cache.Key
type, so start by defining your keys.
extension Cache.Key where Value == String {
// A key that stores a string value.
static let myKey = Cache.Key("my_key")
}
Instantiate a live implementation of the cache type.
let cache = Cache.live()
Insert
cache.set("string value", at: .myKey)
You can provide an optional lifetime in seconds for the entry.
cache.set("string value", at: .myKey, lifetime: 60)
Retrieve
let value = cache.retrieve(at: .myKey)
Remove
cache.remove(at: .myKey)
Usage in tests
This library provides some helpers for easy usage on tests such as:
Noop
An implementation of Cache
that does nothing when called.
let cache = Cache.noop
Failing
An implementation of Cache
that fails with an XCTFail
call.
var setEntryCalled = false
let cache = Cache.failing
.override(
setEntry: { entry, key in
setEntryCalled = true
}
)
cache.set("string value", at: .myKey)
XCTAssertTrue(setEntryCalled)
At the code snipped above all calls to a method that wasn’t overriden will terminate with a XCTFail
.
swift-cache
A type-safe swifty wrapper around
NSCache
.Getting Started
Add
swift-cache
as a dependency to your project using SPM.And in your application/target, add
"Cache"
to your"dependencies"
.Usage
Cache
is accessed through aCache.Key
type, so start by defining your keys.Instantiate a live implementation of the cache type.
Insert
You can provide an optional lifetime in seconds for the entry.
Retrieve
Remove
Usage in tests
This library provides some helpers for easy usage on tests such as:
Noop
An implementation of
Cache
that does nothing when called.Failing
An implementation of
Cache
that fails with anXCTFail
call.At the code snipped above all calls to a method that wasn’t overriden will terminate with a
XCTFail
.