41 static constexpr std::array<char, 85> CHAR_SET_DEFAULT = [](){
42 std::array<char, 85> arr;
46 static constexpr std::array<char, 85> CHAR_SET_ORIGINAL = [](){
47 char asciiValue = 0x21;
48 std::array<char, 85> arr;
49 for(
auto itr = arr.begin(); itr != arr.end(); itr++)
53 static constexpr std::array<char, 85> CHAR_SET_Z85{
54 '0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
55 'a',
'b',
'c',
'd',
'e',
'f',
'g',
'h',
'i',
'j',
56 'k',
'l',
'm',
'n',
'o',
'p',
'q',
'r',
's',
't',
57 'u',
'v',
'w',
'x',
'y',
'z',
'A',
'B',
'C',
'D',
58 'E',
'F',
'G',
'H',
'I',
'J',
'K',
'L',
'M',
'N',
59 'O',
'P',
'Q',
'R',
'S',
'T',
'U',
'V',
'W',
'X',
60 'Y',
'Z',
'.',
'-',
':',
'+',
'=',
'^',
'!',
'/',
61 '*',
'?',
'&',
'<',
'>',
'(',
')',
'[',
']',
'{',
62 '}',
'@',
'%',
'$',
'#'
64 static constexpr std::array<char, 85> CHAR_SET_RFC_1924{
65 '0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
66 'A',
'B',
'C',
'D',
'E',
'F',
'G',
'H',
'I',
'J',
67 'K',
'L',
'M',
'N',
'O',
'P',
'Q',
'R',
'S',
'T',
68 'U',
'V',
'W',
'X',
'Y',
'Z',
'a',
'b',
'c',
'd',
69 'e',
'f',
'g',
'h',
'i',
'j',
'k',
'l',
'm',
'n',
70 'o',
'p',
'q',
'r',
's',
't',
'u',
'v',
'w',
'x',
71 'y',
'z',
'!',
'#',
'$',
'%',
'&',
'(',
')',
'*',
72 '+',
'-',
';',
'<',
'=',
'>',
'?',
'@',
'^',
'_',
73 '`',
'{',
'|',
'}',
'~'
75 static constexpr char ZERO_GROUP_CHAR_ORIGINAL =
'z';
76 static constexpr char SPACE_GROUP_CHAR_ORIGINAL =
'y';
82 static inline const QSet<char> ILLEGAL_CHAR_SET = {
'\x09',
'\x0A',
'\x0B',
'\x0C',
'\x0D',
'\x20'};
87 std::array<char, 85> mCharSet;
89 std::optional<char> mZeroGroupChar;
90 std::optional<char> mSpaceGroupChar;
96 Base85Encoding(StandardEncoding enc);
104 static bool characterIsLegal(
char ch);
105 static const Base85Encoding* encodingFromStandard(StandardEncoding enc);
109 void generateDecodeMap();
110 void evaluateValidity();
113 bool isValid()
const;
114 const std::array<char, 85>& characterSet()
const;
115 std::optional<char> zeroGroupCharacter()
const;
116 std::optional<char> spaceGroupCharacter()
const;
117 bool isHandlePadding()
const;
118 bool usesZeroGroupShortcut()
const;
119 bool usesSpaceGroupShortcut()
const;
121 char characterAt(
int i)
const;
122 int characterPosition(
char ch)
const;
123 bool containsCharacter(
char ch,
bool shortcut =
true)
const;
125 void setCharacterSet(
const std::array<char, 85>& set);
126 void setZeroGroupCharacter(
const char& ch);
127 void setSpaceGroupCharacter(
const char& ch);
128 void resetZeroGroupCharacter();
129 void resetSpaceGroupCharacter();
130 void setHandlePadding(
bool handlePadding);
132 bool operator==(
const Base85Encoding& other)
const;
133 bool operator!=(
const Base85Encoding& other)
const;
The Qx namespace is the main namespace through which all non-global functionality of the Qx library i...
Definition qx-processwaiter.cpp:5
bool operator==(const FileDetails::Translation &lhs, const FileDetails::Translation &rhs) noexcept
Definition qx-filedetails.cpp:85