import XCTestDynamicOverlay public struct MessengerDestroy { public var run: () throws -> Void public func callAsFunction() throws -> Void { try run() } } extension MessengerDestroy { public static func live(_ env: MessengerEnvironment) -> MessengerDestroy { MessengerDestroy { env.ud.set(nil) env.e2e.set(nil) env.cMix.set(nil) try env.fileManager.removeDirectory(env.storageDir) } } } extension MessengerDestroy { public static let unimplemented = MessengerDestroy( run: XCTUnimplemented("\(Self.self)") ) }