import Foundation import XCTestDynamicOverlay public struct PasswordStorage { public struct MissingPasswordError: Error, Equatable { public init() {} } public init( save: @escaping (Data) throws -> Void, load: @escaping () throws -> Data ) { self.save = save self.load = load } public var save: (Data) throws -> Void public var load: () throws -> Data } extension PasswordStorage { public static let unimplemented = PasswordStorage( save: XCTUnimplemented("\(Self.self).save"), load: XCTUnimplemented("\(Self.self).load") ) }