@discardableResult
    func write(_ string: String,
               flags: WriteFlagsType,
               using encoding: String.Encoding = .utf8) throws -> Int {
        let data = try string.data(using: encoding) ?! StringError.notConvertibleToData(using: encoding)