Skip to content

Instantly share code, notes, and snippets.

@ilyannn
ilyannn / Universe-crashes.swift
Last active August 29, 2015 14:04
Enumerating enum values – a universal approach
// This new version seems to be syntactically correct,
// but it crashes together with Xcode as of beta 3.
// (radar link should appear here)
// Find smallest N such that f(N) = nil.
func exhaust<T>(fun: Int -> T?) -> Int {
var index = 0
while fun(index) { index++ }
return index
}
@ilyannn
ilyannn / Unwrapper.swift
Created July 15, 2014 13:13
Unwrapping a bunch of optionals
class Unwrapper<T, R> {
let failed:R?
let values:[T]
init(values: [T] = [], failed:R? = nil) {
self.values = values
self.failed = failed
}
class func unwrap(value:T?, elseReturn safe:R) -> Unwrapper<T, R> {
@ilyannn
ilyannn / bound.swift
Last active August 29, 2015 14:03
How to encapsulate NSError** in Swift
enum State {
case Success(value:String)
case Error(error:NSError)
}
class Bound:Printable {
let pointer:NSErrorPointer
var state:State
var step:Int = 0