Documentation ¶
Index ¶
- Variables
- func Decode(b []byte) ([]byte, bool, int)
- func DecodeString(s string) (string, bool, int)
- func Find(b []byte, max int) [][]byte
- func FindString(s string, max int) []string
- func Fuzz(data []byte) int
- func PossibleGlyph(b []byte) bool
- func PossibleGlyphString(s string) bool
- func Replace(b []byte, max int, f func([]byte) []byte) []byte
- func ReplaceString(s string, max int, f func(string) string) string
Constants ¶
This section is empty.
Variables ¶
var Emoji = &unicode.RangeTable{R16: []unicode.Range16{{Lo: 0x23, Hi: 0x2a, Stride: 0x7}, {Lo: 0x30, Hi: 0x39, Stride: 0x1}, {Lo: 0xa9, Hi: 0xae, Stride: 0x5}, {Lo: 0x203c, Hi: 0x2049, Stride: 0xd}, {Lo: 0x2122, Hi: 0x2139, Stride: 0x17}, {Lo: 0x2194, Hi: 0x2199, Stride: 0x1}, {Lo: 0x21a9, Hi: 0x21aa, Stride: 0x1}, {Lo: 0x231a, Hi: 0x231b, Stride: 0x1}, {Lo: 0x2328, Hi: 0x23cf, Stride: 0xa7}, {Lo: 0x23e9, Hi: 0x23f3, Stride: 0x1}, {Lo: 0x23f8, Hi: 0x23fa, Stride: 0x1}, {Lo: 0x24c2, Hi: 0x24c2, Stride: 0x1}, {Lo: 0x25aa, Hi: 0x25ab, Stride: 0x1}, {Lo: 0x25b6, Hi: 0x25c0, Stride: 0xa}, {Lo: 0x25fb, Hi: 0x25fe, Stride: 0x1}, {Lo: 0x2600, Hi: 0x2604, Stride: 0x1}, {Lo: 0x260e, Hi: 0x2614, Stride: 0x3}, {Lo: 0x2615, Hi: 0x2618, Stride: 0x3}, {Lo: 0x261d, Hi: 0x2620, Stride: 0x3}, {Lo: 0x2622, Hi: 0x2623, Stride: 0x1}, {Lo: 0x2626, Hi: 0x262e, Stride: 0x4}, {Lo: 0x262f, Hi: 0x262f, Stride: 0x1}, {Lo: 0x2638, Hi: 0x263a, Stride: 0x1}, {Lo: 0x2640, Hi: 0x2642, Stride: 0x2}, {Lo: 0x2648, Hi: 0x2653, Stride: 0x1}, {Lo: 0x265f, Hi: 0x2660, Stride: 0x1}, {Lo: 0x2663, Hi: 0x2663, Stride: 0x1}, {Lo: 0x2665, Hi: 0x2666, Stride: 0x1}, {Lo: 0x2668, Hi: 0x267b, Stride: 0x13}, {Lo: 0x267e, Hi: 0x267f, Stride: 0x1}, {Lo: 0x2692, Hi: 0x2697, Stride: 0x1}, {Lo: 0x2699, Hi: 0x2699, Stride: 0x1}, {Lo: 0x269b, Hi: 0x269c, Stride: 0x1}, {Lo: 0x26a0, Hi: 0x26a1, Stride: 0x1}, {Lo: 0x26a7, Hi: 0x26a7, Stride: 0x1}, {Lo: 0x26aa, Hi: 0x26ab, Stride: 0x1}, {Lo: 0x26b0, Hi: 0x26b1, Stride: 0x1}, {Lo: 0x26bd, Hi: 0x26be, Stride: 0x1}, {Lo: 0x26c4, Hi: 0x26c5, Stride: 0x1}, {Lo: 0x26c8, Hi: 0x26ce, Stride: 0x6}, {Lo: 0x26cf, Hi: 0x26d3, Stride: 0x2}, {Lo: 0x26d4, Hi: 0x26e9, Stride: 0x15}, {Lo: 0x26ea, Hi: 0x26ea, Stride: 0x1}, {Lo: 0x26f0, Hi: 0x26f5, Stride: 0x1}, {Lo: 0x26f7, Hi: 0x26fa, Stride: 0x1}, {Lo: 0x26fd, Hi: 0x2702, Stride: 0x5}, {Lo: 0x2705, Hi: 0x2705, Stride: 0x1}, {Lo: 0x2708, Hi: 0x270d, Stride: 0x1}, {Lo: 0x270f, Hi: 0x2712, Stride: 0x3}, {Lo: 0x2714, Hi: 0x2716, Stride: 0x2}, {Lo: 0x271d, Hi: 0x2721, Stride: 0x4}, {Lo: 0x2728, Hi: 0x2728, Stride: 0x1}, {Lo: 0x2733, Hi: 0x2734, Stride: 0x1}, {Lo: 0x2744, Hi: 0x2747, Stride: 0x3}, {Lo: 0x274c, Hi: 0x274e, Stride: 0x2}, {Lo: 0x2753, Hi: 0x2755, Stride: 0x1}, {Lo: 0x2757, Hi: 0x2763, Stride: 0xc}, {Lo: 0x2764, Hi: 0x2764, Stride: 0x1}, {Lo: 0x2795, Hi: 0x2797, Stride: 0x1}, {Lo: 0x27a1, Hi: 0x27bf, Stride: 0xf}, {Lo: 0x2934, Hi: 0x2935, Stride: 0x1}, {Lo: 0x2b05, Hi: 0x2b07, Stride: 0x1}, {Lo: 0x2b1b, Hi: 0x2b1c, Stride: 0x1}, {Lo: 0x2b50, Hi: 0x2b55, Stride: 0x5}, {Lo: 0x3030, Hi: 0x303d, Stride: 0xd}, {Lo: 0x3297, Hi: 0x3299, Stride: 0x2}}, R32: []unicode.Range32{{Lo: 0x1f004, Hi: 0x1f0cf, Stride: 0xcb}, {Lo: 0x1f170, Hi: 0x1f171, Stride: 0x1}, {Lo: 0x1f17e, Hi: 0x1f17f, Stride: 0x1}, {Lo: 0x1f18e, Hi: 0x1f18e, Stride: 0x1}, {Lo: 0x1f191, Hi: 0x1f19a, Stride: 0x1}, {Lo: 0x1f1e6, Hi: 0x1f1ff, Stride: 0x1}, {Lo: 0x1f201, Hi: 0x1f202, Stride: 0x1}, {Lo: 0x1f21a, Hi: 0x1f22f, Stride: 0x15}, {Lo: 0x1f232, Hi: 0x1f23a, Stride: 0x1}, {Lo: 0x1f250, Hi: 0x1f251, Stride: 0x1}, {Lo: 0x1f300, Hi: 0x1f321, Stride: 0x1}, {Lo: 0x1f324, Hi: 0x1f393, Stride: 0x1}, {Lo: 0x1f396, Hi: 0x1f397, Stride: 0x1}, {Lo: 0x1f399, Hi: 0x1f39b, Stride: 0x1}, {Lo: 0x1f39e, Hi: 0x1f3f0, Stride: 0x1}, {Lo: 0x1f3f3, Hi: 0x1f3f5, Stride: 0x1}, {Lo: 0x1f3f7, Hi: 0x1f4fd, Stride: 0x1}, {Lo: 0x1f4ff, Hi: 0x1f53d, Stride: 0x1}, {Lo: 0x1f549, Hi: 0x1f54e, Stride: 0x1}, {Lo: 0x1f550, Hi: 0x1f567, Stride: 0x1}, {Lo: 0x1f56f, Hi: 0x1f570, Stride: 0x1}, {Lo: 0x1f573, Hi: 0x1f57a, Stride: 0x1}, {Lo: 0x1f587, Hi: 0x1f587, Stride: 0x1}, {Lo: 0x1f58a, Hi: 0x1f58d, Stride: 0x1}, {Lo: 0x1f590, Hi: 0x1f590, Stride: 0x1}, {Lo: 0x1f595, Hi: 0x1f596, Stride: 0x1}, {Lo: 0x1f5a4, Hi: 0x1f5a5, Stride: 0x1}, {Lo: 0x1f5a8, Hi: 0x1f5a8, Stride: 0x1}, {Lo: 0x1f5b1, Hi: 0x1f5b2, Stride: 0x1}, {Lo: 0x1f5bc, Hi: 0x1f5bc, Stride: 0x1}, {Lo: 0x1f5c2, Hi: 0x1f5c4, Stride: 0x1}, {Lo: 0x1f5d1, Hi: 0x1f5d3, Stride: 0x1}, {Lo: 0x1f5dc, Hi: 0x1f5de, Stride: 0x1}, {Lo: 0x1f5e1, Hi: 0x1f5e3, Stride: 0x2}, {Lo: 0x1f5e8, Hi: 0x1f5ef, Stride: 0x7}, {Lo: 0x1f5f3, Hi: 0x1f5fa, Stride: 0x7}, {Lo: 0x1f5fb, Hi: 0x1f64f, Stride: 0x1}, {Lo: 0x1f680, Hi: 0x1f6c5, Stride: 0x1}, {Lo: 0x1f6cb, Hi: 0x1f6d2, Stride: 0x1}, {Lo: 0x1f6d5, Hi: 0x1f6d7, Stride: 0x1}, {Lo: 0x1f6e0, Hi: 0x1f6e5, Stride: 0x1}, {Lo: 0x1f6e9, Hi: 0x1f6e9, Stride: 0x1}, {Lo: 0x1f6eb, Hi: 0x1f6ec, Stride: 0x1}, {Lo: 0x1f6f0, Hi: 0x1f6f3, Stride: 0x3}, {Lo: 0x1f6f4, Hi: 0x1f6fc, Stride: 0x1}, {Lo: 0x1f7e0, Hi: 0x1f7eb, Stride: 0x1}, {Lo: 0x1f90c, Hi: 0x1f93a, Stride: 0x1}, {Lo: 0x1f93c, Hi: 0x1f945, Stride: 0x1}, {Lo: 0x1f947, Hi: 0x1f978, Stride: 0x1}, {Lo: 0x1f97a, Hi: 0x1f9cb, Stride: 0x1}, {Lo: 0x1f9cd, Hi: 0x1f9ff, Stride: 0x1}, {Lo: 0x1fa70, Hi: 0x1fa74, Stride: 0x1}, {Lo: 0x1fa78, Hi: 0x1fa7a, Stride: 0x1}, {Lo: 0x1fa80, Hi: 0x1fa86, Stride: 0x1}, {Lo: 0x1fa90, Hi: 0x1faa8, Stride: 0x1}, {Lo: 0x1fab0, Hi: 0x1fab6, Stride: 0x1}, {Lo: 0x1fac0, Hi: 0x1fac2, Stride: 0x1}, {Lo: 0x1fad0, Hi: 0x1fad6, Stride: 0x1}}, LatinOffset: 3}
var EmojiComponent = &unicode.RangeTable{R16: []unicode.Range16{{Lo: 0x23, Hi: 0x2a, Stride: 0x7}, {Lo: 0x30, Hi: 0x39, Stride: 0x1}, {Lo: 0x200d, Hi: 0x20e3, Stride: 0xd6}, {Lo: 0xfe0f, Hi: 0xfe0f, Stride: 0x1}}, R32: []unicode.Range32{{Lo: 0x1f1e6, Hi: 0x1f1ff, Stride: 0x1}, {Lo: 0x1f3fb, Hi: 0x1f3ff, Stride: 0x1}, {Lo: 0x1f9b0, Hi: 0x1f9b3, Stride: 0x1}, {Lo: 0xe0020, Hi: 0xe007f, Stride: 0x1}}, LatinOffset: 2}
var EmojiModifier = &unicode.RangeTable{R16: []unicode.Range16(nil), R32: []unicode.Range32{{Lo: 0x1f3fb, Hi: 0x1f3ff, Stride: 0x1}}, LatinOffset: 0}
var EmojiModifierBase = &unicode.RangeTable{R16: []unicode.Range16{{Lo: 0x261d, Hi: 0x26f9, Stride: 0xdc}, {Lo: 0x270a, Hi: 0x270d, Stride: 0x1}}, R32: []unicode.Range32{{Lo: 0x1f385, Hi: 0x1f385, Stride: 0x1}, {Lo: 0x1f3c2, Hi: 0x1f3c4, Stride: 0x1}, {Lo: 0x1f3c7, Hi: 0x1f3ca, Stride: 0x3}, {Lo: 0x1f3cb, Hi: 0x1f3cc, Stride: 0x1}, {Lo: 0x1f442, Hi: 0x1f443, Stride: 0x1}, {Lo: 0x1f446, Hi: 0x1f450, Stride: 0x1}, {Lo: 0x1f466, Hi: 0x1f478, Stride: 0x1}, {Lo: 0x1f47c, Hi: 0x1f47c, Stride: 0x1}, {Lo: 0x1f481, Hi: 0x1f483, Stride: 0x1}, {Lo: 0x1f485, Hi: 0x1f487, Stride: 0x1}, {Lo: 0x1f48f, Hi: 0x1f491, Stride: 0x2}, {Lo: 0x1f4aa, Hi: 0x1f4aa, Stride: 0x1}, {Lo: 0x1f574, Hi: 0x1f575, Stride: 0x1}, {Lo: 0x1f57a, Hi: 0x1f590, Stride: 0x16}, {Lo: 0x1f595, Hi: 0x1f596, Stride: 0x1}, {Lo: 0x1f645, Hi: 0x1f647, Stride: 0x1}, {Lo: 0x1f64b, Hi: 0x1f64f, Stride: 0x1}, {Lo: 0x1f6a3, Hi: 0x1f6a3, Stride: 0x1}, {Lo: 0x1f6b4, Hi: 0x1f6b6, Stride: 0x1}, {Lo: 0x1f6c0, Hi: 0x1f6cc, Stride: 0xc}, {Lo: 0x1f90c, Hi: 0x1f90f, Stride: 0x3}, {Lo: 0x1f918, Hi: 0x1f91f, Stride: 0x1}, {Lo: 0x1f926, Hi: 0x1f930, Stride: 0xa}, {Lo: 0x1f931, Hi: 0x1f939, Stride: 0x1}, {Lo: 0x1f93c, Hi: 0x1f93e, Stride: 0x1}, {Lo: 0x1f977, Hi: 0x1f977, Stride: 0x1}, {Lo: 0x1f9b5, Hi: 0x1f9b6, Stride: 0x1}, {Lo: 0x1f9b8, Hi: 0x1f9b9, Stride: 0x1}, {Lo: 0x1f9bb, Hi: 0x1f9bb, Stride: 0x1}, {Lo: 0x1f9cd, Hi: 0x1f9cf, Stride: 0x1}, {Lo: 0x1f9d1, Hi: 0x1f9dd, Stride: 0x1}}, LatinOffset: 0}
var EmojiPresentation = &unicode.RangeTable{R16: []unicode.Range16{{Lo: 0x231a, Hi: 0x231b, Stride: 0x1}, {Lo: 0x23e9, Hi: 0x23ec, Stride: 0x1}, {Lo: 0x23f0, Hi: 0x23f3, Stride: 0x3}, {Lo: 0x25fd, Hi: 0x25fe, Stride: 0x1}, {Lo: 0x2614, Hi: 0x2615, Stride: 0x1}, {Lo: 0x2648, Hi: 0x2653, Stride: 0x1}, {Lo: 0x267f, Hi: 0x2693, Stride: 0x14}, {Lo: 0x26a1, Hi: 0x26a1, Stride: 0x1}, {Lo: 0x26aa, Hi: 0x26ab, Stride: 0x1}, {Lo: 0x26bd, Hi: 0x26be, Stride: 0x1}, {Lo: 0x26c4, Hi: 0x26c5, Stride: 0x1}, {Lo: 0x26ce, Hi: 0x26d4, Stride: 0x6}, {Lo: 0x26ea, Hi: 0x26ea, Stride: 0x1}, {Lo: 0x26f2, Hi: 0x26f3, Stride: 0x1}, {Lo: 0x26f5, Hi: 0x26fa, Stride: 0x5}, {Lo: 0x26fd, Hi: 0x2705, Stride: 0x8}, {Lo: 0x270a, Hi: 0x270b, Stride: 0x1}, {Lo: 0x2728, Hi: 0x274c, Stride: 0x24}, {Lo: 0x274e, Hi: 0x274e, Stride: 0x1}, {Lo: 0x2753, Hi: 0x2755, Stride: 0x1}, {Lo: 0x2757, Hi: 0x2757, Stride: 0x1}, {Lo: 0x2795, Hi: 0x2797, Stride: 0x1}, {Lo: 0x27b0, Hi: 0x27bf, Stride: 0xf}, {Lo: 0x2b1b, Hi: 0x2b1c, Stride: 0x1}, {Lo: 0x2b50, Hi: 0x2b55, Stride: 0x5}}, R32: []unicode.Range32{{Lo: 0x1f004, Hi: 0x1f0cf, Stride: 0xcb}, {Lo: 0x1f18e, Hi: 0x1f18e, Stride: 0x1}, {Lo: 0x1f191, Hi: 0x1f19a, Stride: 0x1}, {Lo: 0x1f1e6, Hi: 0x1f1ff, Stride: 0x1}, {Lo: 0x1f201, Hi: 0x1f21a, Stride: 0x19}, {Lo: 0x1f22f, Hi: 0x1f22f, Stride: 0x1}, {Lo: 0x1f232, Hi: 0x1f236, Stride: 0x1}, {Lo: 0x1f238, Hi: 0x1f23a, Stride: 0x1}, {Lo: 0x1f250, Hi: 0x1f251, Stride: 0x1}, {Lo: 0x1f300, Hi: 0x1f320, Stride: 0x1}, {Lo: 0x1f32d, Hi: 0x1f335, Stride: 0x1}, {Lo: 0x1f337, Hi: 0x1f37c, Stride: 0x1}, {Lo: 0x1f37e, Hi: 0x1f393, Stride: 0x1}, {Lo: 0x1f3a0, Hi: 0x1f3ca, Stride: 0x1}, {Lo: 0x1f3cf, Hi: 0x1f3d3, Stride: 0x1}, {Lo: 0x1f3e0, Hi: 0x1f3f0, Stride: 0x1}, {Lo: 0x1f3f4, Hi: 0x1f3f4, Stride: 0x1}, {Lo: 0x1f3f8, Hi: 0x1f43e, Stride: 0x1}, {Lo: 0x1f440, Hi: 0x1f440, Stride: 0x1}, {Lo: 0x1f442, Hi: 0x1f4fc, Stride: 0x1}, {Lo: 0x1f4ff, Hi: 0x1f53d, Stride: 0x1}, {Lo: 0x1f54b, Hi: 0x1f54e, Stride: 0x1}, {Lo: 0x1f550, Hi: 0x1f567, Stride: 0x1}, {Lo: 0x1f57a, Hi: 0x1f57a, Stride: 0x1}, {Lo: 0x1f595, Hi: 0x1f596, Stride: 0x1}, {Lo: 0x1f5a4, Hi: 0x1f5a4, Stride: 0x1}, {Lo: 0x1f5fb, Hi: 0x1f64f, Stride: 0x1}, {Lo: 0x1f680, Hi: 0x1f6c5, Stride: 0x1}, {Lo: 0x1f6cc, Hi: 0x1f6d0, Stride: 0x4}, {Lo: 0x1f6d1, Hi: 0x1f6d2, Stride: 0x1}, {Lo: 0x1f6d5, Hi: 0x1f6d7, Stride: 0x1}, {Lo: 0x1f6eb, Hi: 0x1f6ec, Stride: 0x1}, {Lo: 0x1f6f4, Hi: 0x1f6fc, Stride: 0x1}, {Lo: 0x1f7e0, Hi: 0x1f7eb, Stride: 0x1}, {Lo: 0x1f90c, Hi: 0x1f93a, Stride: 0x1}, {Lo: 0x1f93c, Hi: 0x1f945, Stride: 0x1}, {Lo: 0x1f947, Hi: 0x1f978, Stride: 0x1}, {Lo: 0x1f97a, Hi: 0x1f9cb, Stride: 0x1}, {Lo: 0x1f9cd, Hi: 0x1f9ff, Stride: 0x1}, {Lo: 0x1fa70, Hi: 0x1fa74, Stride: 0x1}, {Lo: 0x1fa78, Hi: 0x1fa7a, Stride: 0x1}, {Lo: 0x1fa80, Hi: 0x1fa86, Stride: 0x1}, {Lo: 0x1fa90, Hi: 0x1faa8, Stride: 0x1}, {Lo: 0x1fab0, Hi: 0x1fab6, Stride: 0x1}, {Lo: 0x1fac0, Hi: 0x1fac2, Stride: 0x1}, {Lo: 0x1fad0, Hi: 0x1fad6, Stride: 0x1}}, LatinOffset: 0}
var ExtendedPictographic = &unicode.RangeTable{R16: []unicode.Range16{{Lo: 0xa9, Hi: 0xae, Stride: 0x5}, {Lo: 0x203c, Hi: 0x2049, Stride: 0xd}, {Lo: 0x2122, Hi: 0x2139, Stride: 0x17}, {Lo: 0x2194, Hi: 0x2199, Stride: 0x1}, {Lo: 0x21a9, Hi: 0x21aa, Stride: 0x1}, {Lo: 0x231a, Hi: 0x231b, Stride: 0x1}, {Lo: 0x2328, Hi: 0x2388, Stride: 0x60}, {Lo: 0x23cf, Hi: 0x23cf, Stride: 0x1}, {Lo: 0x23e9, Hi: 0x23f3, Stride: 0x1}, {Lo: 0x23f8, Hi: 0x23fa, Stride: 0x1}, {Lo: 0x24c2, Hi: 0x24c2, Stride: 0x1}, {Lo: 0x25aa, Hi: 0x25ab, Stride: 0x1}, {Lo: 0x25b6, Hi: 0x25c0, Stride: 0xa}, {Lo: 0x25fb, Hi: 0x25fe, Stride: 0x1}, {Lo: 0x2600, Hi: 0x2605, Stride: 0x1}, {Lo: 0x2607, Hi: 0x2612, Stride: 0x1}, {Lo: 0x2614, Hi: 0x2685, Stride: 0x1}, {Lo: 0x2690, Hi: 0x2705, Stride: 0x1}, {Lo: 0x2708, Hi: 0x2712, Stride: 0x1}, {Lo: 0x2714, Hi: 0x2716, Stride: 0x2}, {Lo: 0x271d, Hi: 0x2721, Stride: 0x4}, {Lo: 0x2728, Hi: 0x2728, Stride: 0x1}, {Lo: 0x2733, Hi: 0x2734, Stride: 0x1}, {Lo: 0x2744, Hi: 0x2747, Stride: 0x3}, {Lo: 0x274c, Hi: 0x274e, Stride: 0x2}, {Lo: 0x2753, Hi: 0x2755, Stride: 0x1}, {Lo: 0x2757, Hi: 0x2763, Stride: 0xc}, {Lo: 0x2764, Hi: 0x2767, Stride: 0x1}, {Lo: 0x2795, Hi: 0x2797, Stride: 0x1}, {Lo: 0x27a1, Hi: 0x27bf, Stride: 0xf}, {Lo: 0x2934, Hi: 0x2935, Stride: 0x1}, {Lo: 0x2b05, Hi: 0x2b07, Stride: 0x1}, {Lo: 0x2b1b, Hi: 0x2b1c, Stride: 0x1}, {Lo: 0x2b50, Hi: 0x2b55, Stride: 0x5}, {Lo: 0x3030, Hi: 0x303d, Stride: 0xd}, {Lo: 0x3297, Hi: 0x3299, Stride: 0x2}}, R32: []unicode.Range32{{Lo: 0x1f000, Hi: 0x1f0ff, Stride: 0x1}, {Lo: 0x1f10d, Hi: 0x1f10f, Stride: 0x1}, {Lo: 0x1f12f, Hi: 0x1f12f, Stride: 0x1}, {Lo: 0x1f16c, Hi: 0x1f171, Stride: 0x1}, {Lo: 0x1f17e, Hi: 0x1f17f, Stride: 0x1}, {Lo: 0x1f18e, Hi: 0x1f18e, Stride: 0x1}, {Lo: 0x1f191, Hi: 0x1f19a, Stride: 0x1}, {Lo: 0x1f1ad, Hi: 0x1f1e5, Stride: 0x1}, {Lo: 0x1f201, Hi: 0x1f20f, Stride: 0x1}, {Lo: 0x1f21a, Hi: 0x1f22f, Stride: 0x15}, {Lo: 0x1f232, Hi: 0x1f23a, Stride: 0x1}, {Lo: 0x1f23c, Hi: 0x1f23f, Stride: 0x1}, {Lo: 0x1f249, Hi: 0x1f3fa, Stride: 0x1}, {Lo: 0x1f400, Hi: 0x1f53d, Stride: 0x1}, {Lo: 0x1f546, Hi: 0x1f64f, Stride: 0x1}, {Lo: 0x1f680, Hi: 0x1f6ff, Stride: 0x1}, {Lo: 0x1f774, Hi: 0x1f77f, Stride: 0x1}, {Lo: 0x1f7d5, Hi: 0x1f7ff, Stride: 0x1}, {Lo: 0x1f80c, Hi: 0x1f80f, Stride: 0x1}, {Lo: 0x1f848, Hi: 0x1f84f, Stride: 0x1}, {Lo: 0x1f85a, Hi: 0x1f85f, Stride: 0x1}, {Lo: 0x1f888, Hi: 0x1f88f, Stride: 0x1}, {Lo: 0x1f8ae, Hi: 0x1f8ff, Stride: 0x1}, {Lo: 0x1f90c, Hi: 0x1f93a, Stride: 0x1}, {Lo: 0x1f93c, Hi: 0x1f945, Stride: 0x1}, {Lo: 0x1f947, Hi: 0x1faff, Stride: 0x1}, {Lo: 0x1fc00, Hi: 0x1fffd, Stride: 0x1}}, LatinOffset: 1}
var RegionalIndicator = &unicode.RangeTable{ R32: []unicode.Range32{ {Lo: uint32('🇦'), Hi: uint32('🇿'), Stride: 1}, }, }
var Tag = &unicode.RangeTable{ R32: []unicode.Range32{ {Lo: uint32(0xE0030), Hi: uint32(0xE007E), Stride: 1}, }, }
Functions ¶
func Decode ¶
Decode returns - the first complete emoji, true, and it's width in bytes is available - the full non emoji sequence, false and it's width in bytes (might be a rune or multiples in case of malformed emoji)
func DecodeString ¶
DecodeString returns - the first complete emoji, true, and it's width in bytes is available - the full non emoji sequence, false and it's width in bytes (might be a rune or multiples in case of malformed emoji)
func FindString ¶
FindString returns the n first emoji in s of all of thems if max == -1
func PossibleGlyph ¶
PossibleGlyph checks is the given string might be an emoji based on the EBNF from https://www.unicode.org/reports/tr51/#EBNF_and_Regex
possible_emoji :=
flag_sequence | zwj_element (\x{200D} zwj_element)*
flag_sequence :=
\p{RI}\p{RI}
zwj_element :=
\p{Emoji} emoji_modification?
emoji_modification :=
\p{EMod}
| \x{FE0F} \x{20E3}?
tag_modifier :=
[\x{E0020}-\x{E007E}]+ \x{E007F}
There should not be false negative (glyph wrongly detected as an emoji) There is false positive such inexistant flag indicator
func PossibleGlyphString ¶
PossibleGlyphString checks is the given string might be an emoji based on the EBNF from https://www.unicode.org/reports/tr51/#EBNF_and_Regex
possible_emoji :=
flag_sequence | zwj_element (\x{200D} zwj_element)*
flag_sequence :=
\p{RI}\p{RI}
zwj_element :=
\p{Emoji} emoji_modification?
emoji_modification :=
\p{EMod}
| \x{FE0F} \x{20E3}?
tag_modifier :=
[\x{E0020}-\x{E007E}]+ \x{E007F}
There should not be false negative (glyph wrongly detected as an emoji) There is false positive such inexistant flag indicator
Types ¶
This section is empty.