37 lines
786 B
Swift
37 lines
786 B
Swift
/**
|
|
* Splash
|
|
* Copyright (c) John Sundell 2018
|
|
* MIT license - see LICENSE.md
|
|
*/
|
|
|
|
import Foundation
|
|
import Splash
|
|
|
|
struct OutputBuilderMock: OutputBuilder {
|
|
private var components = [Component]()
|
|
|
|
mutating func addToken(_ token: String, ofType type: TokenType) {
|
|
components.append(.token(token, type))
|
|
}
|
|
|
|
mutating func addPlainText(_ text: String) {
|
|
components.append(.plainText(text))
|
|
}
|
|
|
|
mutating func addWhitespace(_ whitespace: String) {
|
|
components.append(.whitespace(whitespace))
|
|
}
|
|
|
|
func build() -> [Component] {
|
|
return components
|
|
}
|
|
}
|
|
|
|
extension OutputBuilderMock {
|
|
enum Component: Equatable {
|
|
case token(String, TokenType)
|
|
case plainText(String)
|
|
case whitespace(String)
|
|
}
|
|
}
|