mirror of
https://github.com/GayPizzaSpecifications/darwin-apk.git
synced 2025-08-03 21:41:31 +00:00
29 lines
620 B
Swift
29 lines
620 B
Swift
/*
|
|
* darwin-apk © 2024 Gay Pizza Specifications
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
import Foundation
|
|
|
|
struct TextFileWriter: TextOutputStream {
|
|
private var _hnd: FileHandle
|
|
|
|
init?(_ to: URL) {
|
|
let file = open(to.path(), O_WRONLY | O_CREAT | O_TRUNC | O_SYNC, 0o644)
|
|
guard file >= 0 else {
|
|
return nil
|
|
}
|
|
self._hnd = FileHandle(fileDescriptor: file, closeOnDealloc: true)
|
|
}
|
|
|
|
mutating func write(_ string: String) {
|
|
if let data = string.data(using: .utf8) {
|
|
try? self._hnd.write(contentsOf: data)
|
|
}
|
|
}
|
|
|
|
mutating func close() throws {
|
|
try self._hnd.close()
|
|
}
|
|
}
|