Files
MagnumOpus/Packages/MagnumOpusCore/Sources/IMAPClient/IMAPCommandRunner.swift

22 lines
502 B
Swift

import NIOIMAPCore
struct IMAPCommandRunner {
private let connection: IMAPConnection
private var tagCounter: Int = 0
init(connection: IMAPConnection) {
self.connection = connection
}
mutating func nextTag() -> String {
tagCounter += 1
return "A\(tagCounter)"
}
mutating func run(_ command: Command) async throws -> [Response] {
let tag = nextTag()
let tagged = TaggedCommand(tag: tag, command: command)
return try await connection.sendCommand(tag, command: .tagged(tagged))
}
}