Program Listing for File USBCTRL_DPRAM_EP5_IN_CONTROL_ENDPOINT_TYPE.h#

Return to documentation for file (src/generated/enums/USBCTRL_DPRAM_EP5_IN_CONTROL_ENDPOINT_TYPE.h)

#pragma once

#include <cstdint>
#include <cstring>

namespace RP2040
{

enum class USBCTRL_DPRAM_EP5_IN_CONTROL_ENDPOINT_TYPE : uint8_t
{
    Control,
    Isochronous = 1,
    Bulk = 2,
    Interrupt = 3
};
static_assert(sizeof(USBCTRL_DPRAM_EP5_IN_CONTROL_ENDPOINT_TYPE) == 1);

inline const char *to_string(
    USBCTRL_DPRAM_EP5_IN_CONTROL_ENDPOINT_TYPE instance)
{
    const char *result = "UNKNOWN USBCTRL_DPRAM_EP5_IN_CONTROL_ENDPOINT_TYPE";

    switch (instance)
    {
    case USBCTRL_DPRAM_EP5_IN_CONTROL_ENDPOINT_TYPE::Control:
        result = "Control";
        break;
    case USBCTRL_DPRAM_EP5_IN_CONTROL_ENDPOINT_TYPE::Isochronous:
        result = "Isochronous";
        break;
    case USBCTRL_DPRAM_EP5_IN_CONTROL_ENDPOINT_TYPE::Bulk:
        result = "Bulk";
        break;
    case USBCTRL_DPRAM_EP5_IN_CONTROL_ENDPOINT_TYPE::Interrupt:
        result = "Interrupt";
        break;
    }

    return result;
}

inline bool from_string(const char *data,
                        USBCTRL_DPRAM_EP5_IN_CONTROL_ENDPOINT_TYPE &output)
{
    bool result = false;

    if ((result = !strncmp(data, "Control", 7)))
    {
        output = USBCTRL_DPRAM_EP5_IN_CONTROL_ENDPOINT_TYPE::Control;
    }
    else if ((result = !strncmp(data, "Isochronous", 11)))
    {
        output = USBCTRL_DPRAM_EP5_IN_CONTROL_ENDPOINT_TYPE::Isochronous;
    }
    else if ((result = !strncmp(data, "Bulk", 4)))
    {
        output = USBCTRL_DPRAM_EP5_IN_CONTROL_ENDPOINT_TYPE::Bulk;
    }
    else if ((result = !strncmp(data, "Interrupt", 9)))
    {
        output = USBCTRL_DPRAM_EP5_IN_CONTROL_ENDPOINT_TYPE::Interrupt;
    }

    return result;
}

}; // namespace RP2040