Program Listing for File IO_BANK0_GPIO17_CTRL_INOVER.h#

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

#pragma once

#include <cstdint>
#include <cstring>

namespace RP2040
{

enum class IO_BANK0_GPIO17_CTRL_INOVER : uint8_t
{
    NORMAL ,
    INVERT = 1 ,
    LOW = 2 ,
    HIGH = 3
};
static_assert(sizeof(IO_BANK0_GPIO17_CTRL_INOVER) == 1);

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

    switch (instance)
    {
    case IO_BANK0_GPIO17_CTRL_INOVER::NORMAL:
        result = "NORMAL";
        break;
    case IO_BANK0_GPIO17_CTRL_INOVER::INVERT:
        result = "INVERT";
        break;
    case IO_BANK0_GPIO17_CTRL_INOVER::LOW:
        result = "LOW";
        break;
    case IO_BANK0_GPIO17_CTRL_INOVER::HIGH:
        result = "HIGH";
        break;
    }

    return result;
}

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

    if ((result = !strncmp(data, "NORMAL", 6)))
    {
        output = IO_BANK0_GPIO17_CTRL_INOVER::NORMAL;
    }
    else if ((result = !strncmp(data, "INVERT", 6)))
    {
        output = IO_BANK0_GPIO17_CTRL_INOVER::INVERT;
    }
    else if ((result = !strncmp(data, "LOW", 3)))
    {
        output = IO_BANK0_GPIO17_CTRL_INOVER::LOW;
    }
    else if ((result = !strncmp(data, "HIGH", 4)))
    {
        output = IO_BANK0_GPIO17_CTRL_INOVER::HIGH;
    }

    return result;
}

}; // namespace RP2040