diff --git a/Sources/SwiftyModbus/SwiftyModbus.swift b/Sources/SwiftyModbus/SwiftyModbus.swift
index 6ce5816f45f3469d8f42b31887ab583ae2c150f5..f00541bbb31cf333714cc0fa7434e13be992c848 100644
--- a/Sources/SwiftyModbus/SwiftyModbus.swift
+++ b/Sources/SwiftyModbus/SwiftyModbus.swift
@@ -13,8 +13,9 @@ fileprivate let errorValue: Int32 = -1
 /// Libmodbus wrapper class
 public class SwiftyModbus {
     /// libmodbus error
-    public enum ModbusError: Error {
-        case error(message: String, errno: Int32)
+    public struct ModbusError: Error {
+        public let message: String
+        public let errno: Int32
     }
 
     private var modbus: OpaquePointer
@@ -241,6 +242,7 @@ public class SwiftyModbus {
     }
     
     /// Write and read number of registers in a single transaction
+    /// The function uses the Modbus function code 0x17 (write/read registers).
     /// - Parameters:
     ///   - writeAddr: address of the remote device to write
     ///   - data: data array to write
@@ -258,7 +260,7 @@ public class SwiftyModbus {
 
     private func modbusError(errno: Int32) -> ModbusError {
         let errorString = String(utf8String: modbus_strerror(errno)) ?? ""
-        return .error(message: errorString, errno: errno)
+        return .init(message: errorString, errno: errno)
     }
 
     private func toTimerInterval(sec: UInt32, usec: UInt32) -> TimeInterval {
diff --git a/Sources/SwiftyModbus/SwiftyModbusResult.swift b/Sources/SwiftyModbus/SwiftyModbusResult.swift
index fea10e1a3b8c440fe97c76030e94a4602d1b00db..757acad40399f4ef08e3a68123ecb66d2fb32494 100644
--- a/Sources/SwiftyModbus/SwiftyModbusResult.swift
+++ b/Sources/SwiftyModbus/SwiftyModbusResult.swift
@@ -13,8 +13,9 @@ fileprivate let errorValue: Int32 = -1
 /// Libmodbus wrapper class with Result
 public class SwiftyModbusResult {
     /// libmodbus error
-    public enum ModbusError: Error {
-        case error(message: String, errno: Int32)
+    public struct ModbusError: Error {
+        public let message: String
+        public let errno: Int32
     }
 
     private var modbus: OpaquePointer
@@ -238,7 +239,6 @@ public class SwiftyModbusResult {
         return .success(())
     }
 
-    
     /// Modify the value of the holding register at the remote device using the algorithm:
     ///  new value = (current value AND 'and') OR ('or' AND (NOT 'and'))
     /// The function uses the Modbus function code 0x16 (mask single register).
@@ -255,6 +255,7 @@ public class SwiftyModbusResult {
     }
     
     /// Write and read number of registers in a single transaction
+    /// The function uses the Modbus function code 0x17 (write/read registers).
     /// - Parameters:
     ///   - writeAddr: address of the remote device to write
     ///   - data: data array to write
@@ -272,7 +273,7 @@ public class SwiftyModbusResult {
 
     private func modbusError(errno: Int32) -> ModbusError {
         let errorString = String(utf8String: modbus_strerror(errno)) ?? ""
-        return .error(message: errorString, errno: errno)
+        return .init(message: errorString, errno: errno)
     }
 
     private func toTimerInterval(sec: UInt32, usec: UInt32) -> TimeInterval {
diff --git a/Sources/SwiftyModbusPromise/SwiftyModbusPromise.swift b/Sources/SwiftyModbusPromise/SwiftyModbusPromise.swift
index 66e9c5d65ec8637b1bb51e45bcce1f2c2194ae12..0061982c45143a830e2cc1a260b01aba86bf2d3d 100644
--- a/Sources/SwiftyModbusPromise/SwiftyModbusPromise.swift
+++ b/Sources/SwiftyModbusPromise/SwiftyModbusPromise.swift
@@ -14,10 +14,11 @@ fileprivate let errorValue: Int32 = -1
 /// Libmodbus wrapper class with Promises
 public class SwiftyModbusPromise {
     /// libmodbus error
-    public enum ModbusError: Error {
-        case error(message: String, errno: Int32)
+    public struct ModbusError: Error {
+        public let message: String
+        public let errno: Int32
     }
-    
+
     /// DispatchQueue for modbus acync opetations
     public var modbusQueue = DispatchQueue(label: "in.ioshack.modbusQueue")
     
@@ -363,6 +364,7 @@ public class SwiftyModbusPromise {
     }
     
     /// Write and read number of registers in a single transaction
+    /// The function uses the Modbus function code 0x17 (write/read registers).
     /// - Parameters:
     ///   - writeAddr: address of the remote device to write
     ///   - data: data array to write
@@ -388,7 +390,7 @@ public class SwiftyModbusPromise {
 
     private func modbusError(errno: Int32) -> ModbusError {
         let errorString = String(utf8String: modbus_strerror(errno)) ?? ""
-        return .error(message: errorString, errno: errno)
+        return .init(message: errorString, errno: errno)
     }
 
     private func toTimerInterval(sec: UInt32, usec: UInt32) -> TimeInterval {