import Foundation import Metal extension Optional { func unwrapped(_ closure: (Wrapped) -> T) -> T? { if case let .some(value) = self { return closure(value) } return nil } @discardableResult func ifNil(_ closure: () -> Void) -> Self { if self == nil { closure() } return self } @discardableResult func ifNotNil(_ closure: () -> Void) -> Self { if self != nil { closure() } return self } }