Ppeixianzhong054.3
d6312e48创建于 2024年7月16日历史提交
/*
 * @Copyright (c) Huawei Technologies Co., Ltd. 2023-2024. All rights reserved.
 */
 
package mysqlclient_ffi

/*--------------------- C中枚举 enum enum_stmt_attr_type ---------------------*/
public enum MysqlStmtAttrType <: Equatable<MysqlStmtAttrType> {
    | STMT_ATTR_UPDATE_MAX_LENGTH
    | STMT_ATTR_CURSOR_TYPE
    | STMT_ATTR_PREFETCH_ROWS

    func toInt32(): Int32 {
        if (this == STMT_ATTR_UPDATE_MAX_LENGTH) {
            return 0
        }
        if (this == STMT_ATTR_CURSOR_TYPE) {
            return 1
        }
        if (this == STMT_ATTR_CURSOR_TYPE) {
            return 2
        }
        return -1
    }

    /*
     * 枚举是否相等
     *
     * 参数 that - 枚举
     * 返回值 Bool - 是否相等
     */
    public operator func ==(that: MysqlStmtAttrType): Bool {
        match ((this, that)) {
            case (STMT_ATTR_UPDATE_MAX_LENGTH, STMT_ATTR_UPDATE_MAX_LENGTH) => true
            case (STMT_ATTR_CURSOR_TYPE, STMT_ATTR_CURSOR_TYPE) => true
            case (STMT_ATTR_PREFETCH_ROWS, STMT_ATTR_PREFETCH_ROWS) => true
            case _ => false
        }
    }

    /*
     * 枚举是否不相等
     *
     * 参数 that - 枚举
     * 返回值 Bool - 是否不相等
     */
    public operator func !=(that: MysqlStmtAttrType): Bool {
        return !(this == that)
    }
}

/*--------------------- C中枚举 enum enum_mysql_set_option ---------------------*/
public enum MysqlSetOption <: Equatable<MysqlSetOption> {
    | MYSQL_OPTION_MULTI_STATEMENTS_ON
    | MYSQL_OPTION_MULTI_STATEMENTS_OFF

    func toInt32(): Int32 {
        if (this == MYSQL_OPTION_MULTI_STATEMENTS_ON) {
            return 0
        }
        if (this == MYSQL_OPTION_MULTI_STATEMENTS_OFF) {
            return 1
        }
        return -1
    }

    /*
     * 枚举是否相等
     *
     * 参数 that - 枚举
     * 返回值 Bool - 是否相等
     */
    public operator func ==(that: MysqlSetOption): Bool {
        match ((this, that)) {
            case (MYSQL_OPTION_MULTI_STATEMENTS_ON, MYSQL_OPTION_MULTI_STATEMENTS_ON) => true
            case (MYSQL_OPTION_MULTI_STATEMENTS_OFF, MYSQL_OPTION_MULTI_STATEMENTS_OFF) => true
            case _ => false
        }
    }

    /*
     * 枚举是否不相等
     *
     * 参数 that - 枚举
     * 返回值 Bool - 是否不相等
     */
    public operator func !=(that: MysqlSetOption): Bool {
        return !(this == that)
    }
}

/*--------------------- C中枚举 enum mysql_option ---------------------*/
public enum MysqlOption <: Equatable<MysqlOption> {
    | MYSQL_OPT_CONNECT_TIMEOUT
    | MYSQL_OPT_COMPRESS
    | MYSQL_OPT_NAMED_PIPE
    | MYSQL_INIT_COMMAND
    | MYSQL_READ_DEFAULT_FILE
    | MYSQL_READ_DEFAULT_GROUP
    | MYSQL_SET_CHARSET_DIR
    | MYSQL_SET_CHARSET_NAME
    | MYSQL_OPT_LOCAL_INFILE
    | MYSQL_OPT_PROTOCOL
    | MYSQL_SHARED_MEMORY_BASE_NAME
    | MYSQL_OPT_READ_TIMEOUT
    | MYSQL_OPT_WRITE_TIMEOUT
    | MYSQL_OPT_USE_RESULT
    | MYSQL_REPORT_DATA_TRUNCATION
    | MYSQL_OPT_RECONNECT
    | MYSQL_PLUGIN_DIR
    | MYSQL_DEFAULT_AUTH
    | MYSQL_OPT_BIND
    | MYSQL_OPT_SSL_KEY
    | MYSQL_OPT_SSL_CERT
    | MYSQL_OPT_SSL_CA
    | MYSQL_OPT_SSL_CAPATH
    | MYSQL_OPT_SSL_CIPHER
    | MYSQL_OPT_SSL_CRL
    | MYSQL_OPT_SSL_CRLPATH
    | MYSQL_OPT_CONNECT_ATTR_RESET
    | MYSQL_OPT_CONNECT_ATTR_ADD
    | MYSQL_OPT_CONNECT_ATTR_DELETE
    | MYSQL_SERVER_PUBLIC_KEY
    | MYSQL_ENABLE_CLEARTEXT_PLUGIN
    | MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS
    | MYSQL_OPT_MAX_ALLOWED_PACKET
    | MYSQL_OPT_NET_BUFFER_LENGTH
    | MYSQL_OPT_TLS_VERSION
    | MYSQL_OPT_SSL_MODE
    | MYSQL_OPT_GET_SERVER_PUBLIC_KEY
    | MYSQL_OPT_RETRY_COUNT
    | MYSQL_OPT_OPTIONAL_RESULTSET_METADATA
    | MYSQL_OPT_SSL_FIPS_MODE
    | MYSQL_OPT_TLS_CIPHERSUITES
    | MYSQL_OPT_COMPRESSION_ALGORITHMS
    | MYSQL_OPT_ZSTD_COMPRESSION_LEVEL
    | MYSQL_OPT_LOAD_DATA_LOCAL_DIR
    | MYSQL_OPT_USER_PASSWORD
    | MYSQL_OPT_SSL_SESSION_DATA

    func toInt32(): Int32 {
        if (this == MYSQL_OPT_CONNECT_TIMEOUT) {
            return 0
        }
        if (this == MYSQL_OPT_COMPRESS) {
            return 1
        }
        if (this == MYSQL_OPT_NAMED_PIPE) {
            return 2
        }
        if (this == MYSQL_INIT_COMMAND) {
            return 3
        }
        if (this == MYSQL_READ_DEFAULT_FILE) {
            return 4
        }
        if (this == MYSQL_READ_DEFAULT_GROUP) {
            return 5
        }
        if (this == MYSQL_SET_CHARSET_DIR) {
            return 6
        }
        if (this == MYSQL_SET_CHARSET_NAME) {
            return 7
        }
        if (this == MYSQL_OPT_LOCAL_INFILE) {
            return 8
        }
        if (this == MYSQL_OPT_PROTOCOL) {
            return 9
        }
        if (this == MYSQL_SHARED_MEMORY_BASE_NAME) {
            return 10
        }
        if (this == MYSQL_OPT_READ_TIMEOUT) {
            return 11
        }
        if (this == MYSQL_OPT_WRITE_TIMEOUT) {
            return 12
        }
        if (this == MYSQL_OPT_USE_RESULT) {
            return 13
        }
        if (this == MYSQL_REPORT_DATA_TRUNCATION) {
            return 14
        }
        if (this == MYSQL_OPT_RECONNECT) {
            return 15
        }
        if (this == MYSQL_PLUGIN_DIR) {
            return 16
        }
        if (this == MYSQL_DEFAULT_AUTH) {
            return 17
        }
        if (this == MYSQL_OPT_BIND) {
            return 18
        }
        if (this == MYSQL_OPT_SSL_KEY) {
            return 19
        }
        if (this == MYSQL_OPT_SSL_CERT) {
            return 20
        }
        if (this == MYSQL_OPT_SSL_CA) {
            return 21
        }
        if (this == MYSQL_OPT_SSL_CAPATH) {
            return 22
        }
        if (this == MYSQL_OPT_SSL_CIPHER) {
            return 23
        }
        if (this == MYSQL_OPT_SSL_CRL) {
            return 24
        }
        if (this == MYSQL_OPT_SSL_CRLPATH) {
            return 25
        }
        if (this == MYSQL_OPT_CONNECT_ATTR_RESET) {
            return 26
        }
        if (this == MYSQL_OPT_CONNECT_ATTR_ADD) {
            return 27
        }
        if (this == MYSQL_OPT_CONNECT_ATTR_DELETE) {
            return 28
        }
        if (this == MYSQL_SERVER_PUBLIC_KEY) {
            return 29
        }
        if (this == MYSQL_ENABLE_CLEARTEXT_PLUGIN) {
            return 30
        }
        if (this == MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS) {
            return 31
        }
        if (this == MYSQL_OPT_MAX_ALLOWED_PACKET) {
            return 32
        }
        if (this == MYSQL_OPT_NET_BUFFER_LENGTH) {
            return 33
        }
        if (this == MYSQL_OPT_TLS_VERSION) {
            return 34
        }
        if (this == MYSQL_OPT_SSL_MODE) {
            return 35
        }
        if (this == MYSQL_OPT_GET_SERVER_PUBLIC_KEY) {
            return 36
        }
        if (this == MYSQL_OPT_RETRY_COUNT) {
            return 37
        }
        if (this == MYSQL_OPT_OPTIONAL_RESULTSET_METADATA) {
            return 38
        }
        if (this == MYSQL_OPT_SSL_FIPS_MODE) {
            return 39
        }
        if (this == MYSQL_OPT_TLS_CIPHERSUITES) {
            return 40
        }
        if (this == MYSQL_OPT_COMPRESSION_ALGORITHMS) {
            return 41
        }
        if (this == MYSQL_OPT_ZSTD_COMPRESSION_LEVEL) {
            return 42
        }
        if (this == MYSQL_OPT_LOAD_DATA_LOCAL_DIR) {
            return 43
        }
        if (this == MYSQL_OPT_USER_PASSWORD) {
            return 44
        }
        if (this == MYSQL_OPT_SSL_SESSION_DATA) {
            return 45
        }
        return -1
    }

    /*
     * 枚举是否相等
     *
     * 参数 that - 枚举
     * 返回值 Bool - 是否相等
     */
    public operator func ==(that: MysqlOption): Bool {
        match ((this, that)) {
            case (MYSQL_OPT_CONNECT_TIMEOUT, MYSQL_OPT_CONNECT_TIMEOUT) => true
            case (MYSQL_OPT_COMPRESS, MYSQL_OPT_COMPRESS) => true
            case (MYSQL_OPT_NAMED_PIPE, MYSQL_OPT_NAMED_PIPE) => true
            case (MYSQL_INIT_COMMAND, MYSQL_INIT_COMMAND) => true
            case (MYSQL_READ_DEFAULT_FILE, MYSQL_READ_DEFAULT_FILE) => true
            case (MYSQL_READ_DEFAULT_GROUP, MYSQL_READ_DEFAULT_GROUP) => true
            case (MYSQL_SET_CHARSET_DIR, MYSQL_SET_CHARSET_DIR) => true
            case (MYSQL_SET_CHARSET_NAME, MYSQL_SET_CHARSET_NAME) => true
            case (MYSQL_OPT_LOCAL_INFILE, MYSQL_OPT_LOCAL_INFILE) => true
            case (MYSQL_OPT_PROTOCOL, MYSQL_OPT_PROTOCOL) => true
            case (MYSQL_SHARED_MEMORY_BASE_NAME, MYSQL_SHARED_MEMORY_BASE_NAME) => true
            case (MYSQL_OPT_READ_TIMEOUT, MYSQL_OPT_READ_TIMEOUT) => true
            case (MYSQL_OPT_WRITE_TIMEOUT, MYSQL_OPT_WRITE_TIMEOUT) => true
            case (MYSQL_OPT_USE_RESULT, MYSQL_OPT_USE_RESULT) => true
            case (MYSQL_REPORT_DATA_TRUNCATION, MYSQL_REPORT_DATA_TRUNCATION) => true
            case (MYSQL_OPT_RECONNECT, MYSQL_OPT_RECONNECT) => true
            case (MYSQL_PLUGIN_DIR, MYSQL_PLUGIN_DIR) => true
            case (MYSQL_DEFAULT_AUTH, MYSQL_DEFAULT_AUTH) => true
            case (MYSQL_OPT_BIND, MYSQL_OPT_BIND) => true
            case (MYSQL_OPT_SSL_KEY, MYSQL_OPT_SSL_KEY) => true
            case (MYSQL_OPT_SSL_CERT, MYSQL_OPT_SSL_CERT) => true
            case (MYSQL_OPT_SSL_CA, MYSQL_OPT_SSL_CA) => true
            case (MYSQL_OPT_SSL_CAPATH, MYSQL_OPT_SSL_CAPATH) => true
            case (MYSQL_OPT_SSL_CIPHER, MYSQL_OPT_SSL_CIPHER) => true
            case (MYSQL_OPT_SSL_CRL, MYSQL_OPT_SSL_CRL) => true
            case (MYSQL_OPT_SSL_CRLPATH, MYSQL_OPT_SSL_CRLPATH) => true
            case (MYSQL_OPT_CONNECT_ATTR_RESET, MYSQL_OPT_CONNECT_ATTR_RESET) => true
            case (MYSQL_OPT_CONNECT_ATTR_ADD, MYSQL_OPT_CONNECT_ATTR_ADD) => true
            case (MYSQL_OPT_CONNECT_ATTR_DELETE, MYSQL_OPT_CONNECT_ATTR_DELETE) => true
            case (MYSQL_SERVER_PUBLIC_KEY, MYSQL_SERVER_PUBLIC_KEY) => true
            case (MYSQL_ENABLE_CLEARTEXT_PLUGIN, MYSQL_ENABLE_CLEARTEXT_PLUGIN) => true
            case (MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS, MYSQL_OPT_CAN_HANDLE_EXPIRED_PASSWORDS) => true
            case (MYSQL_OPT_MAX_ALLOWED_PACKET, MYSQL_OPT_MAX_ALLOWED_PACKET) => true
            case (MYSQL_OPT_NET_BUFFER_LENGTH, MYSQL_OPT_NET_BUFFER_LENGTH) => true
            case (MYSQL_OPT_TLS_VERSION, MYSQL_OPT_TLS_VERSION) => true
            case (MYSQL_OPT_SSL_MODE, MYSQL_OPT_SSL_MODE) => true
            case (MYSQL_OPT_GET_SERVER_PUBLIC_KEY, MYSQL_OPT_GET_SERVER_PUBLIC_KEY) => true
            case (MYSQL_OPT_RETRY_COUNT, MYSQL_OPT_RETRY_COUNT) => true
            case (MYSQL_OPT_OPTIONAL_RESULTSET_METADATA, MYSQL_OPT_OPTIONAL_RESULTSET_METADATA) => true
            case (MYSQL_OPT_SSL_FIPS_MODE, MYSQL_OPT_SSL_FIPS_MODE) => true
            case (MYSQL_OPT_TLS_CIPHERSUITES, MYSQL_OPT_TLS_CIPHERSUITES) => true
            case (MYSQL_OPT_COMPRESSION_ALGORITHMS, MYSQL_OPT_COMPRESSION_ALGORITHMS) => true
            case (MYSQL_OPT_ZSTD_COMPRESSION_LEVEL, MYSQL_OPT_ZSTD_COMPRESSION_LEVEL) => true
            case (MYSQL_OPT_LOAD_DATA_LOCAL_DIR, MYSQL_OPT_LOAD_DATA_LOCAL_DIR) => true
            case (MYSQL_OPT_USER_PASSWORD, MYSQL_OPT_USER_PASSWORD) => true
            case (MYSQL_OPT_SSL_SESSION_DATA, MYSQL_OPT_SSL_SESSION_DATA) => true
            case _ => false
        }
    }

    /*
     * 枚举是否不相等
     *
     * 参数 that - 枚举
     * 返回值 Bool - 是否不相等
     */
    public operator func !=(that: MysqlOption): Bool {
        return !(this == that)
    }
}

/*--------------------- C中枚举 enum mysql_enum_shutdown_level ---------------------*/
public enum MysqlShutdownLevel <: Equatable<MysqlShutdownLevel> {
    | SHUTDOWN_DEFAULT
    | SHUTDOWN_WAIT_CONNECTIONS
    | SHUTDOWN_WAIT_TRANSACTIONS
    | SHUTDOWN_WAIT_UPDATES
    | SHUTDOWN_WAIT_ALL_BUFFERS
    | SHUTDOWN_WAIT_CRITICAL_BUFFERS
    | KILL_QUERY
    | KILL_CONNECTION

    func toInt32(): Int32 {
        if (this == SHUTDOWN_DEFAULT) {
            return 0
        }
        if (this == SHUTDOWN_WAIT_CONNECTIONS) {
            return 1
        }
        if (this == SHUTDOWN_WAIT_TRANSACTIONS) {
            return 2
        }
        if (this == SHUTDOWN_WAIT_UPDATES) {
            return 8
        }
        if (this == SHUTDOWN_WAIT_ALL_BUFFERS) {
            return 16
        }
        if (this == SHUTDOWN_WAIT_CRITICAL_BUFFERS) {
            return 17
        }
        if (this == KILL_QUERY) {
            return 254
        }
        if (this == KILL_CONNECTION) {
            return 255
        }
        return -1
    }

    /*
     * 枚举是否相等
     *
     * 参数 that - 枚举
     * 返回值 Bool - 是否相等
     */
    public operator func ==(that: MysqlShutdownLevel): Bool {
        match ((this, that)) {
            case (SHUTDOWN_DEFAULT, SHUTDOWN_DEFAULT) => true
            case (SHUTDOWN_WAIT_CONNECTIONS, SHUTDOWN_WAIT_CONNECTIONS) => true
            case (SHUTDOWN_WAIT_TRANSACTIONS, SHUTDOWN_WAIT_TRANSACTIONS) => true
            case (SHUTDOWN_WAIT_UPDATES, SHUTDOWN_WAIT_UPDATES) => true
            case (SHUTDOWN_WAIT_ALL_BUFFERS, SHUTDOWN_WAIT_ALL_BUFFERS) => true
            case (SHUTDOWN_WAIT_CRITICAL_BUFFERS, SHUTDOWN_WAIT_CRITICAL_BUFFERS) => true
            case (KILL_QUERY, KILL_QUERY) => true
            case (KILL_CONNECTION, KILL_CONNECTION) => true
            case _ => false
        }
    }

    /*
     * 枚举是否不相等
     *
     * 参数 that - 枚举
     * 返回值 Bool - 是否不相等
     */
    public operator func !=(that: MysqlShutdownLevel): Bool {
        return !(this == that)
    }
}