Xteink-X4-crosspoint-reader/lib/Epub/Epub/hyphenation/HyphenationCommon.h
Arthur Tazhitdinov ed3a427b64 refactor
2026-01-09 23:20:04 +05:00

28 lines
735 B
C++

#pragma once
#include <cstddef>
#include <cstdint>
#include <string>
#include <vector>
struct CodepointInfo {
uint32_t value;
size_t byteOffset;
};
uint32_t toLowerLatin(uint32_t cp);
uint32_t toLowerCyrillic(uint32_t cp);
bool isLatinLetter(uint32_t cp);
bool isCyrillicLetter(uint32_t cp);
bool isAlphabetic(uint32_t cp);
bool isPunctuation(uint32_t cp);
bool isAsciiDigit(uint32_t cp);
bool isExplicitHyphen(uint32_t cp);
bool isSoftHyphen(uint32_t cp);
void trimSurroundingPunctuation(std::vector<CodepointInfo>& cps);
bool hasOnlyAlphabetic(const std::vector<CodepointInfo>& cps);
std::vector<CodepointInfo> collectCodepoints(const std::string& word);
void trimTrailingFootnoteReference(std::vector<CodepointInfo>& cps);