import Foundation

enum ClientError: Error, Stateable {
    // general
    case initError
    case generalError

    // SRV resolver errors
    case srvUnableToComplete
    case srvReferenceError
    case srvSocketError
    case srvProcessError
    case srvTimeout

    // connection errors
    case conInitError(Int)
    case conNoAliveRecords
    case conWriteError(Int)
    case conReadError(Int)
    case conTlsError(Int)

    // xml parser errors
    case xmlUnknown(Int)
    case xmlDeclarationInside(Int, Int)

    // serializer errors
    case serUnableDataConvert

    case authChallengeError(Int)

    // resource binding error
    case resourceBindingError
}
