Evo C++ Library v0.5.1
Classes | Namespaces | Macros | Typedefs | Enumerations | Functions | Variables
str.h File Reference

Evo implementation detail: String helpers. More...

#include "sys.h"
#include "../meta.h"

Go to the source code of this file.

Classes

struct  FmtAttribs
 Formatting attributes (used internally). More...
 
struct  FmtChar
 Explicitly format a repeated character. More...
 
struct  FmtDump
 Explicitly format a hex dump from buffer. More...
 
struct  FmtFieldFloat< T >
 This pairs a FmtFloatT type with FmtSetField for output formatting. More...
 
struct  FmtFieldFloat< T >
 This pairs a FmtFloatT type with FmtSetField for output formatting. More...
 
struct  FmtFieldNum< T >
 This pairs a FmtIntT type with FmtSetField for output formatting. More...
 
struct  FmtFieldNum< T >
 This pairs a FmtIntT type with FmtSetField for output formatting. More...
 
struct  FmtFloatT< T >
 Explicitly format a floating pointer number. More...
 
struct  FmtIntT< T >
 Explicitly format an integer. More...
 
struct  FmtPtr
 Explicitly format a pointer. More...
 
struct  FmtSetField
 Holds field and alignment formatting attributes. More...
 
struct  FmtSetFloat
 Holds floating point formatting attributes. More...
 
struct  FmtSetInt
 Holds integer formatting attributes. More...
 
struct  FmtSetNull
 Holds string to use when formatting null values. More...
 
struct  FmtString
 Explicitly format a string. More...
 
struct  FmtStringWrap
 

Namespaces

 evo
 Evo C++ Library namespace.
 

Macros

#define INCL_evo_impl_str_h
 

Typedefs

typedef FmtFloatT< float > FmtFloat
 Explicitly format a floating pointer number. More...
 
typedef FmtFloatT< double > FmtFloatD
 Explicitly format a floating pointer number. More...
 
typedef FmtFloatT< ldouble > FmtFloatL
 Explicitly format a floating pointer number. More...
 
typedef FmtIntT< int > FmtInt
 Explicitly format an integer. More...
 
typedef FmtIntT< int16 > FmtInt16
 Explicitly format an integer. More...
 
typedef FmtIntT< int32 > FmtInt32
 Explicitly format an integer. More...
 
typedef FmtIntT< int64 > FmtInt64
 Explicitly format an integer. More...
 
typedef FmtIntT< int8 > FmtInt8
 Explicitly format an integer. More...
 
typedef FmtIntT< long > FmtLong
 Explicitly format an integer. More...
 
typedef FmtIntT< longl > FmtLongL
 Explicitly format an integer. More...
 
typedef FmtIntT< short > FmtShort
 Explicitly format an integer. More...
 
typedef FmtIntT< uint > FmtUInt
 Explicitly format an integer. More...
 
typedef FmtIntT< uint16 > FmtUInt16
 Explicitly format an integer. More...
 
typedef FmtIntT< uint32 > FmtUInt32
 Explicitly format an integer. More...
 
typedef FmtIntT< uint64 > FmtUInt64
 Explicitly format an integer. More...
 
typedef FmtIntT< uint8 > FmtUInt8
 Explicitly format an integer. More...
 
typedef FmtIntT< ulong > FmtULong
 Explicitly format an integer. More...
 
typedef FmtIntT< ulongl > FmtULongL
 Explicitly format an integer. More...
 
typedef FmtIntT< ushort > FmtUShort
 Explicitly format an integer. More...
 

Enumerations

enum  CharBreakType {
  cbtOTHER = 0, cbtWSPACE, cbtQUOTE, cbtBEGIN,
  cbtEND, cbtWORD
}
 Character break type returned by ascii_breaktype(). More...
 
enum  CharType {
  ctOTHER = 0, ctWSPACE, ctPUNCT, ctDIGIT,
  ctUPPER, ctLOWER
}
 Character type returned by ascii_type(). More...
 
enum  FmtAlign { faCURRENT = 0, fLEFT, fCENTER, fRIGHT }
 Formatting alignment. More...
 
enum  FmtBase {
  fbCURRENT = 0, fbAUTO = 0, fBIN = 2, fOCT = 8,
  fDEC = 10, fHEX = 16, fHEXL = 116
}
 Formatting integer base. More...
 
enum  FmtBasePrefix { fbpCURRENT = 0, fPREFIX0, fPREFIX1, fPREFIX2 }
 Formatting integer base prefix type. More...
 
enum  FmtPrecision {
  fpCURRENT = -2, fPREC_AUTO = -1, fPREC0 = 0, fPREC1,
  fPREC2, fPREC3, fPREC4, fPREC5,
  fPREC6
}
 Formatting floating point precision type. More...
 
enum  FmtWidth { fWIDTH0 = 0 }
 Formatting field width. More...
 
enum  StringSearchAlg { ssaDEFAULT =0, ssaKMP, ssaBASIC }
 String search algorithm selection. More...
 
enum  UtfMode { umINCLUDE_INVALID, umREPLACE_INVALID, umSKIP_INVALID, umSTRICT }
 UTF decoding mode used to set how to handle invalid character values. More...
 

Functions

CharBreakType ascii_breaktype (char ch)
 Get ASCII character word-break type. More...
 
char ascii_tolower (char ch)
 Convert ASCII character to lowercase. More...
 
char ascii_toupper (char ch)
 Convert ASCII character to uppercase. More...
 
CharType ascii_type (char ch)
 Get ASCII character type. More...
 
const char * string_memrchr (const char *str, char ch, size_t size)
 Evo implementation of memrchr() to search for character in reverse. More...
 
int utf16_compare (const wchar16 *str1, ulong len1, const wchar16 *str2, ulong len2)
 Compare two non-terminated UTF-16 strings. More...
 
int utf16_compare (const wchar16 *str1, ulong len1, const wchar16 *str2)
 Compare a non-terminated UTF-16 string with a terminated UTF-16 string. More...
 
int utf16_compare (const wchar16 *str1, const wchar16 *str2)
 Compare two terminated UTF-16 strings. More...
 
int utf16_compare8 (const wchar16 *str1, ulong len1, const char *str2, ulong len2)
 Compare a non-terminated UTF-16 string to a non-terminated UTF-8 string. More...
 
int utf16_compare8 (const wchar16 *str1, ulong len1, const char *str2)
 Compare a non-terminated UTF-16 string to a terminated UTF-8 string. More...
 
int utf16_compare8 (const wchar16 *str1, const char *str2)
 Compare a terminated UTF-16 string to a terminated UTF-8 string. More...
 
ulong utf16_count (const wchar16 *str, const wchar16 *end, UtfMode mode=umREPLACE_INVALID)
 Count Unicode character values in UTF-16 string. More...
 
const wchar16 * utf16_min (const wchar16 *str, const wchar16 *end, bool strict=false, uint mincount=1)
 Scan for UTF-16 surrogate pairs, which each require a pair of wchar16 values (4 bytes). More...
 
const wchar16 * utf16_scan (wchar32 &code, const wchar16 *str, const wchar16 *end, UtfMode mode=umREPLACE_INVALID)
 Scan for next Unicode character in UTF-16 string. More...
 
const wchar16 * utf16_scan_term (wchar32 &code, const wchar16 *str, UtfMode mode=umREPLACE_INVALID)
 Scan for next Unicode character in terminated UTF-16 string. More...
 
ulong utf16_strlen (const wchar16 *str)
 Find terminated UTF-16 string length. More...
 
ulong utf16_to8 (const wchar16 *&str, const wchar16 *end, char *outbuf=NULL, ulong outsize=0, UtfMode mode=umREPLACE_INVALID)
 Convert UTF-16 string to UTF-8 string. More...
 
int utf8_compare (const char *str1, ulong len1, const char *str2, ulong len2)
 Compare two non-terminated UTF-8 strings. More...
 
int utf8_compare (const char *str1, ulong len1, const char *str2)
 Compare non-terminated and terminated UTF-8 strings. More...
 
int utf8_compare (const char *str1, const char *str2)
 Compare two terminated UTF-8 strings. More...
 
ulong utf8_count (const char *str, const char *end, UtfMode mode=umREPLACE_INVALID)
 Count Unicode character values in UTF-8 string. More...
 
const char * utf8_min (const char *str, const char *end, bool strict=false, ulong mincount=1, uint minsize=2)
 Scan for UTF-8 multi-byte characters of at least minsize. More...
 
const char * utf8_scan (wchar32 &code, const char *str, const char *end, UtfMode mode=umREPLACE_INVALID)
 Scan for next Unicode character in UTF-8 string. More...
 
const char * utf8_scan_term (wchar32 &code, const char *str, UtfMode mode=umREPLACE_INVALID)
 Scan for next Unicode character in terminated UTF-8 string. More...
 
ulong utf8_to16 (const char *&str, const char *end, wchar16 *outbuf=NULL, ulong outsize=0, UtfMode mode=umREPLACE_INVALID)
 Convert UTF-8 string to UTF-16 string. More...
 

Variables

static const wchar16 UNICODE_REPLACEMENT_CHAR = 0xFFFD
 Unicode code point for "Replacement Character" used when decoding invalid UTF bytes or values. More...
 

Detailed Description

Evo implementation detail: String helpers.

Macro Definition Documentation

◆ INCL_evo_impl_str_h

#define INCL_evo_impl_str_h