static bool matches(const String& u1, const String& g1, const String& u2, const String& g2, const SVGKerningPair& kerningPair) { if (!stringMatchesUnicodeRange(u1, kerningPair.unicodeRange1, kerningPair.unicodeName1) && !stringMatchesGlyphName(g1, kerningPair.glyphName1)) return false; if (!stringMatchesUnicodeRange(u2, kerningPair.unicodeRange2, kerningPair.unicodeName2) && !stringMatchesGlyphName(g2, kerningPair.glyphName2)) return false; return true; }
static inline bool matches(const String& u1, const String& u2, const String& g2, const SVGKerningPair& svgKerningPair) { return stringMatchesUnicodeRange(u1, svgKerningPair.unicodeRange1) && matches(u2, g2, svgKerningPair); }
static inline bool matches(const String& u2, const String& g2, const SVGKerning& svgKerning) { return stringMatchesGlyphName(g2, svgKerning.glyphName2) || stringMatchesUnicodeName(u2, svgKerning.unicodeName2) || stringMatchesUnicodeRange(u2, svgKerning.unicodeRange2); }