Skip to content

File evabTextTraits.h

File List > src > evabTextTraits.h

Go to the documentation of this file

#pragma once

#include <Arduino.h>

namespace evab
{

    struct TextTraits
    {

        static unsigned char Length(const char *aText)
        {
            return strlen(aText);
        }

        static char Read(const char *aText, unsigned char aIndex)
        {
            return aText[aIndex];
        }

        static unsigned char Length(char *aText)
        {
            return strlen(aText);
        }

        static char Read(char *aText, unsigned char aIndex)
        {
            return aText[aIndex];
        }

        static unsigned char Length(const __FlashStringHelper *aText)
        {
            return strlen_P((const char *)aText);
        }

        static char Read(const __FlashStringHelper *aText, unsigned char aIndex)
        {
            return pgm_read_byte((const char *)aText + aIndex);
        }

        static unsigned char Length(__FlashStringHelper *aText)
        {
            return strlen_P((const char *)aText);
        }

        static char Read(__FlashStringHelper *aText, unsigned char aIndex)
        {
            return pgm_read_byte((const char *)aText + aIndex);
        }
    };
}