Skip to content

Commit 22c05e2

Browse files
committed
Add forceCastedValue()
1 parent 0343dbd commit 22c05e2

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ A weak-to-strong map table. It is inspired by [`NSMapTable`](https://developer.a
1212
```swift
1313
public func value(forKey key: Key) -> Value?
1414
public func value(forKey key: Key, default: @autoclosure () -> Value) -> Value
15+
public func forceCastedValue<T>(forKey key: Key, default: @autoclosure () -> T) -> T
1516
public func setValue(_ value: Value?, forKey key: Key)
1617
```
1718

Sources/WeakMapTable/WeakMapTable.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ final public class WeakMapTable<Key, Value> where Key: AnyObject {
4646
return defaultValue
4747
}
4848

49+
public func forceCastedValue<T>(forKey key: Key, default: @autoclosure () -> T) -> T {
50+
return self.value(forKey: key, default: `default`() as! Value) as! T
51+
}
52+
4953
public func setValue(_ value: Value?, forKey key: Key) {
5054
let weakKey = Weak(key)
5155

0 commit comments

Comments
 (0)