mirror of
https://github.com/emojisum/emojisum.git
synced 2024-11-27 17:55:39 +00:00
39 lines
1.1 KiB
Go
39 lines
1.1 KiB
Go
package emoji
|
|
|
|
import "strings"
|
|
|
|
// Map returns the emoji at the provided position.
|
|
// This list is from 0-255
|
|
func Map(b byte) Words {
|
|
return mapGen.EmojiWords[int(b)]
|
|
}
|
|
|
|
// Version returns the version of the emojisum document currently compiled
|
|
// against
|
|
func Version() string {
|
|
return mapGen.Version
|
|
}
|
|
|
|
var mapGen VersionedMap
|
|
|
|
// VersionedMap is the structure used for the `emojimap.json` document
|
|
type VersionedMap struct {
|
|
Description string `json:"description"`
|
|
Version string `json:"version"`
|
|
// these are an ordered list, referened by a byte (each byte of a checksum digest)
|
|
EmojiWords []Words `json:"emojiwords"`
|
|
}
|
|
|
|
// Words are a set of options to represent an emoji.
|
|
// Possible options could be the ":colon_notation:" or a "U+26CF" style codepoint.
|
|
type Words []string
|
|
|
|
// IsColonNotation checks for whether a word is the :colon_notation: of emoji
|
|
func IsColonNotation(word string) bool {
|
|
return strings.HasPrefix(word, ":") && strings.HasSuffix(word, ":")
|
|
}
|
|
|
|
// IsCodepoint checks for whether a word is the "U+1234" codepoint style of emoji
|
|
func IsCodepoint(word string) bool {
|
|
return strings.HasPrefix(strings.ToUpper(word), "U+")
|
|
}
|