Botan 3.13.0
Crypto and TLS for C&
Botan::CharacterValidityTable Class Referencefinal

#include <charset.h>

Public Member Functions

constexpr CharacterValidityTable invert () const
constexpr bool operator() (char c) const

Static Public Member Functions

static constexpr CharacterValidityTable alpha_numeric_plus (std::string_view extras)

Detailed Description

Character classifier

Definition at line 112 of file charset.h.

Member Function Documentation

◆ alpha_numeric_plus()

constexpr CharacterValidityTable Botan::CharacterValidityTable::alpha_numeric_plus ( std::string_view extras)
inlinestaticconstexpr

Definition at line 114 of file charset.h.

114 {
115 TableStorage tbl{};
116
117 set_tbl_range(tbl, "0123456789");
118 set_tbl_range(tbl, "abcdefghijklmnopqrstuvwxyz");
119 set_tbl_range(tbl, "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
120 set_tbl_range(tbl, extras);
121
122 return CharacterValidityTable(tbl);
123 }

Referenced by Botan::URI::from_string(), Botan::SQL_Database::is_valid_table_name(), and Botan::HTTP::url_encode().

◆ invert()

CharacterValidityTable Botan::CharacterValidityTable::invert ( ) const
inlineconstexpr

Definition at line 130 of file charset.h.

130 {
131 TableStorage inverted = m_tbl;
132 for(auto& v : inverted) {
133 v = ~v;
134 }
135 return CharacterValidityTable(inverted);
136 }

Referenced by Botan::HTTP::url_encode().

◆ operator()()

bool Botan::CharacterValidityTable::operator() ( char c) const
inlineconstexpr

Definition at line 125 of file charset.h.

125 {
126 const uint8_t uc = static_cast<uint8_t>(c);
127 return ((m_tbl[uc / 32] >> (uc % 32)) & 1) != 0;
128 }

The documentation for this class was generated from the following file: