kaomji_ru/
lib.rs

1//! **Kaomoji** (顔文字) is a popular Japanese emoticon style made up of Japanese characters and grammar punctuations, and are used to express emotion in texting and cyber communication. The word **kaomoji** is also synonymous to be referred to as **Japanese emoticons**. This concept is formed by the combination of two words in Kanji, “kao” (顔 – “face”) and “moji” (文字 – “character”).
2//!
3//! Japanese are very emotional and creative nation. Therefore, in Japan emoticons are popular as nowhere in the world.
4//!
5//! Japanese believe that eyes are the mirror of a human soul. Therefore, unlike Western emoticons where most attention is paid to mouth, in **Japanese emoticons** the most important part are eyes. In addition, **kaomoji** are so popular because you don’t have to read them sideways.
6//! Many Japanese are good at drawing because Japanese is the language of drawings. Anime and manga are vivid examples of how closely the authors manage to convey a variety of emotions just by a set of a few simple lines.
7//! In the beginning of internet and instant messaging – lack of face-to-face talk resulted in mistakenly taking parodies and humorous jokes the wrong way. **Kaomoji** is a result of manga and anime fans who wanted to correct those mistakes, avoid awkward writing situations, and express words more creatively.
8//!
9//! **Japanese emoticons** are extremely diverse. Some of Internet sources state the number of 10000 but, in fact, there are much more of them. Such diversity may be explained by at least two factors:
10//!
11//! - unlike Cyrillic and Latin alphabets, which are usually written in single-byte character sets, Japanese writing requires a minimum of double-byte sets with a wider scope of characters;
12//!
13//! - **kaomoji** can express not only individual emotions, but also complex actions, objects, and even whole stories.
14//!
15//! **Japanese emoticons** are divided into categories based on emotional component of a form, action or object. These emoticons can also use some special characters for additional connotation.
16//!
17//! On this website you can find an interesting collection of kawaii (cute) **Japanese emoji** compiled from various (mostly Japanese) internet sources. Since it is impossible to find and display all of them, we selected the most interesting and cute ones, as well as added our own. In addition, we also developed an application for Android.
18//!
19//! So! Feel free to use these **Japanese emoticons**. Mix and match the elements of different **kaomoji** and create your own creative options!
20#[cfg(test)]
21macro_rules! test_string {
22    ($val:expr,$i:expr) => {
23        if let Ok(string) = std::str::from_utf8($i) {
24            assert!(
25                !string.contains("\n"),
26                "New line detected at index [{}]",
27                $val
28            );
29            assert!(
30                string.trim() == string,
31                "Trailing whitespace detected at [{}]",
32                $val
33            )
34        } else {
35            panic!("Invalid unicode detected at [{}]", $val)
36        }
37    };
38}
39
40#[cfg(test)]
41macro_rules! test {
42    ($array:path) => {
43        for (val, i) in $array.into_iter().enumerate() {
44            test_string!(val, i)
45        }
46    };
47}
48
49pub mod positive_emotions {
50    /// If you want to create joyful, happy or laughing Japanese emoticons use high up eyes. For example, you can use these characters: ^,  ̄, ´ and `. Mouths are important too. Japanese girls often use character ω (omega) for mouths of their emoticons, thinking that such kaomoji are cute, or, as they say, kawaii. You can also use ∀, ▽ and other characters resembling a smile. And Japanese also like to add different effects to kaomoji (stars, tears of joy, and so on) for better emphasis.
51    pub const JOY: [&[u8]; 85] = [
52        b"(* ^ \xCF\x89 ^)",
53        b"(\xC2\xB4 \xE2\x88\x80 ` *)",
54        b"\xD9\xA9(\xE2\x97\x95\xE2\x80\xBF\xE2\x97\x95\xEF\xBD\xA1)\xDB\xB6",
55        b"\xE2\x98\x86*:.\xEF\xBD\xA1.o(\xE2\x89\xA7\xE2\x96\xBD\xE2\x89\xA6)o.\xEF\xBD\xA1.:*\xE2\x98\x86",
56        b"(o^\xE2\x96\xBD^o)",
57        b"(\xE2\x8C\x92\xE2\x96\xBD\xE2\x8C\x92)\xE2\x98\x86",
58        b"<(\xEF\xBF\xA3\xEF\xB8\xB6\xEF\xBF\xA3)>",
59        b"\xE3\x80\x82.:\xE2\x98\x86*:\xEF\xBD\xA5'(*\xE2\x8C\x92\xE2\x80\x95\xE2\x8C\x92*)))",
60        b"\xE3\x83\xBD(\xE3\x83\xBB\xE2\x88\x80\xE3\x83\xBB)\xEF\xBE\x89",
61        b"(\xC2\xB4\xEF\xBD\xA1\xE2\x80\xA2 \xCF\x89 \xE2\x80\xA2\xEF\xBD\xA1`)",
62        b"(\xEF\xBF\xA3\xCF\x89\xEF\xBF\xA3)",
63        b"\xEF\xBD\x80;:\xE3\x82\x9B;\xEF\xBD\x80;\xEF\xBD\xA5(\xC2\xB0\xCE\xB5\xC2\xB0 )",
64        b"(o\xEF\xBD\xA5\xCF\x89\xEF\xBD\xA5o)",
65        b"(\xEF\xBC\xA0\xEF\xBC\xBE\xE2\x97\xA1\xEF\xBC\xBE)",
66        b"\xE3\x83\xBD(*\xE3\x83\xBB\xCF\x89\xE3\x83\xBB)\xEF\xBE\x89",
67        b"(o_ _)\xEF\xBE\x89\xE5\xBD\xA1\xE2\x98\x86",
68        b"(^\xE4\xBA\xBA^)",
69        b"(o\xC2\xB4\xE2\x96\xBD`o)",
70        b"(*\xC2\xB4\xE2\x96\xBD`*)",
71        b"\xEF\xBD\xA1\xEF\xBE\x9F( \xEF\xBE\x9F^\xE2\x88\x80^\xEF\xBE\x9F)\xEF\xBE\x9F\xEF\xBD\xA1",
72        b"( \xC2\xB4 \xCF\x89 ` )",
73        b"(((o(*\xC2\xB0\xE2\x96\xBD\xC2\xB0*)o)))",
74        b"(\xE2\x89\xA7\xE2\x97\xA1\xE2\x89\xA6)",
75        b"(o\xC2\xB4\xE2\x88\x80`o)",
76        b"(\xC2\xB4\xE2\x80\xA2 \xCF\x89 \xE2\x80\xA2`)",
77        b"(\xEF\xBC\xBE\xE2\x96\xBD\xEF\xBC\xBE')",
78        b"(\xE2\x8C\x92\xCF\x89\xE2\x8C\x92)",
79        b"\xE2\x88\x91d(\xC2\xB0\xE2\x88\x80\xC2\xB0d)",
80        b"\xE2\x95\xB0(\xE2\x96\x94\xE2\x88\x80\xE2\x96\x94)\xE2\x95\xAF",
81        b"(\xE2\x94\x80\xE2\x80\xBF\xE2\x80\xBF\xE2\x94\x80)",
82        b"(*^\xE2\x80\xBF^*)",
83        b"\xE3\x83\xBD(o^ ^o)\xEF\xBE\x89",
84        b"(\xE2\x9C\xAF\xE2\x97\xA1\xE2\x9C\xAF)",
85        b"(\xE2\x97\x95\xE2\x80\xBF\xE2\x97\x95)",
86        b"(*\xE2\x89\xA7\xCF\x89\xE2\x89\xA6*)",
87        b"(\xE2\x98\x86\xE2\x96\xBD\xE2\x98\x86)",
88        b"(\xE2\x8C\x92\xE2\x80\xBF\xE2\x8C\x92)",
89        b"\xEF\xBC\xBC(\xE2\x89\xA7\xE2\x96\xBD\xE2\x89\xA6)\xEF\xBC\x8F",
90        b"\xE3\x83\xBD(o\xEF\xBC\xBE\xE2\x96\xBD\xEF\xBC\xBEo)\xE3\x83\x8E",
91        b"\xE2\x98\x86 \xEF\xBD\x9E('\xE2\x96\xBD^\xE4\xBA\xBA)",
92        b"(*\xC2\xB0\xE2\x96\xBD\xC2\xB0*)",
93        b"\xD9\xA9(\xEF\xBD\xA1\xE2\x80\xA2\xCC\x81\xE2\x80\xBF\xE2\x80\xA2\xCC\x80\xEF\xBD\xA1)\xDB\xB6",
94        b"(\xE2\x9C\xA7\xCF\x89\xE2\x9C\xA7)",
95        b"\xE3\x83\xBD(*\xE2\x8C\x92\xE2\x96\xBD\xE2\x8C\x92*)\xEF\xBE\x89",
96        b"(\xC2\xB4\xEF\xBD\xA1\xE2\x80\xA2 \xE1\xB5\x95 \xE2\x80\xA2\xEF\xBD\xA1`)",
97        b"( \xC2\xB4 \xE2\x96\xBD ` )",
98        b"(\xEF\xBF\xA3\xE2\x96\xBD\xEF\xBF\xA3)",
99        b"\xE2\x95\xB0(*\xC2\xB4\xEF\xB8\xB6`*)\xE2\x95\xAF",
100        b"\xE3\x83\xBD(>\xE2\x88\x80<\xE2\x98\x86)\xE3\x83\x8E",
101        b"o(\xE2\x89\xA7\xE2\x96\xBD\xE2\x89\xA6)o",
102        b"(\xE2\x98\x86\xCF\x89\xE2\x98\x86)",
103        b"(\xE3\x81\xA3\xCB\x98\xCF\x89\xCB\x98\xCF\x82 )",
104        b"\xEF\xBC\xBC(\xEF\xBF\xA3\xE2\x96\xBD\xEF\xBF\xA3)\xEF\xBC\x8F",
105        b"(*\xC2\xAF\xEF\xB8\xB6\xC2\xAF*)",
106        b"\xEF\xBC\xBC(\xEF\xBC\xBE\xE2\x96\xBD\xEF\xBC\xBE)\xEF\xBC\x8F",
107        b"\xD9\xA9(\xE2\x97\x95\xE2\x80\xBF\xE2\x97\x95)\xDB\xB6",
108        b"(o\xCB\x98\xE2\x97\xA1\xCB\x98o)",
109        b"\\(\xE2\x98\x85\xCF\x89\xE2\x98\x85)/",
110        b"\\(^\xE3\x83\xAE^)/",
111        b"(\xE3\x80\x83\xEF\xBC\xBE\xE2\x96\xBD\xEF\xBC\xBE\xE3\x80\x83)",
112        b"(\xE2\x95\xAF\xE2\x9C\xA7\xE2\x96\xBD\xE2\x9C\xA7)\xE2\x95\xAF",
113        b"o(>\xCF\x89<)o",
114        b"o( \xE2\x9D\x9B\xE1\xB4\x97\xE2\x9D\x9B )o",
115        b"\xEF\xBD\xA1\xEF\xBE\x9F(T\xE3\x83\xAET)\xEF\xBE\x9F\xEF\xBD\xA1",
116        b"( \xE2\x80\xBE\xCC\x81 \xE2\x97\xA1 \xE2\x80\xBE\xCC\x81 )",
117        b"(\xEF\xBE\x89\xC2\xB4\xE3\x83\xAE`)\xEF\xBE\x89*: \xEF\xBD\xA5\xEF\xBE\x9F",
118        b"(b \xE1\xB5\x94\xE2\x96\xBD\xE1\xB5\x94)b",
119        b"(\xE0\xB9\x91\xCB\x83\xE1\xB4\x97\xCB\x82)\xEF\xBB\xAD",
120        b"(\xE0\xB9\x91\xCB\x98\xEF\xB8\xB6\xCB\x98\xE0\xB9\x91)",
121        b"\xC2\xB0\xCB\x96\xE2\x9C\xA7\xE2\x97\x9D(\xE2\x81\xB0\xE2\x96\xBF\xE2\x81\xB0)\xE2\x97\x9C\xE2\x9C\xA7\xCB\x96\xC2\xB0",
122        b"(\xC2\xB4\xEF\xBD\xA5\xE1\xB4\x97\xEF\xBD\xA5 ` )",
123        b"(\xEF\xBE\x89\xE2\x97\x95\xE3\x83\xAE\xE2\x97\x95)\xEF\xBE\x89*:\xEF\xBD\xA5\xEF\xBE\x9F\xE2\x9C\xA7",
124        b"(\xE2\x80\x9E\xE2\x80\xA2 \xD6\x8A \xE2\x80\xA2\xE2\x80\x9E)",
125        b"(.\xE2\x9D\x9B \xE1\xB4\x97 \xE2\x9D\x9B.)",
126        b"(\xE2\x81\x80\xE1\x97\xA2\xE2\x81\x80)",
127        b"(\xEF\xBF\xA2\xE2\x80\xBF\xEF\xBF\xA2 )",
128        b"(\xC2\xAC\xE2\x80\xBF\xC2\xAC )",
129        b"(*\xEF\xBF\xA3\xE2\x96\xBD\xEF\xBF\xA3)b",
130        b"( \xCB\x99\xE2\x96\xBF\xCB\x99 )",
131        b"(\xC2\xAF\xE2\x96\xBF\xC2\xAF)",
132        b"( \xE2\x97\x95\xE2\x96\xBF\xE2\x97\x95 )",
133        b"\xEF\xBC\xBC(\xD9\xA5\xE2\x81\x80\xE2\x96\xBD\xE2\x81\x80 )\xEF\xBC\x8F",
134        b"(\xE2\x80\x9E\xE2\x80\xA2 \xE1\xB4\x97 \xE2\x80\xA2\xE2\x80\x9E)",
135        b"(\xE1\xB5\x94\xE2\x97\xA1\xE1\xB5\x94)",
136        b"( \xC2\xB4 \xE2\x96\xBF ` )",
137    ];
138
139    /// Love and kissing Japanese emoji often use character ♡ (heart) or its combination, for example, ノ~ ♡ (air kiss). You can also use a set of characters "chu" for a kiss (in Japan it means a sound of a kiss). Another interesting love emoticons feature is an active presence of such characters as * or o, which mean "rousy cheeks" and are often used in combination with /, \, ノ, ノ and ヽ. This emoticons are trying to hide their faces in embarrassment. You can also use character ε (bow lips), which indicates the desire to hug and kiss. Japanese girls often joke saying that such kaomoji look like perverts!
140    pub const LOVE: [&[u8]; 47] = [
141        b"(\xEF\xBE\x89\xC2\xB4 \xD0\xB7 `)\xE3\x83\x8E",
142        b"(\xE2\x99\xA1\xCE\xBC_\xCE\xBC)",
143        b"(*^^*)\xE2\x99\xA1",
144        b"\xE2\x98\x86\xE2\x8C\x92\xE3\x83\xBD(*'\xEF\xBD\xA4^*)chu",
145        b"(\xE2\x99\xA1-_-\xE2\x99\xA1)",
146        b"(\xEF\xBF\xA3\xCE\xB5\xEF\xBF\xA3\xEF\xBC\xA0)",
147        b"\xE3\x83\xBD(\xE2\x99\xA1\xE2\x80\xBF\xE2\x99\xA1)\xE3\x83\x8E",
148        b"( \xC2\xB4 \xE2\x88\x80 `)\xE3\x83\x8E\xEF\xBD\x9E \xE2\x99\xA1",
149        b"(\xE2\x94\x80\xE2\x80\xBF\xE2\x80\xBF\xE2\x94\x80)\xE2\x99\xA1",
150        b"(\xC2\xB4\xEF\xBD\xA1\xE2\x80\xA2 \xE1\xB5\x95 \xE2\x80\xA2\xEF\xBD\xA1`) \xE2\x99\xA1",
151        b"(*\xE2\x99\xA1\xE2\x88\x80\xE2\x99\xA1)",
152        b"(\xEF\xBD\xA1\xE3\x83\xBB//\xCE\xB5//\xE3\x83\xBB\xEF\xBD\xA1)",
153        b"(\xC2\xB4 \xCF\x89 `\xE2\x99\xA1)",
154        b"\xE2\x99\xA1( \xE2\x97\xA1\xE2\x80\xBF\xE2\x97\xA1 )",
155        b"(\xE2\x97\x95\xE2\x80\xBF\xE2\x97\x95)\xE2\x99\xA1",
156        b"(/\xE2\x96\xBD\xEF\xBC\xBC*)\xEF\xBD\xA1o\xE2\x97\x8B\xE2\x99\xA1",
157        b"(\xE1\x83\xA6\xCB\x98\xE2\x8C\xA3\xCB\x98\xE1\x83\xA6)",
158        b"(\xE2\x99\xA1\xC2\xB0\xE2\x96\xBD\xC2\xB0\xE2\x99\xA1)",
159        b"\xE2\x99\xA1(\xEF\xBD\xA1- \xCF\x89 -)",
160        b"\xE2\x99\xA1 \xEF\xBD\x9E('\xE2\x96\xBD^\xE4\xBA\xBA)",
161        b"(\xC2\xB4\xE2\x80\xA2 \xCF\x89 \xE2\x80\xA2`) \xE2\x99\xA1",
162        b"(\xC2\xB4 \xCE\xB5 ` )\xE2\x99\xA1",
163        b"(\xC2\xB4\xEF\xBD\xA1\xE2\x80\xA2 \xCF\x89 \xE2\x80\xA2\xEF\xBD\xA1`) \xE2\x99\xA1",
164        b"( \xC2\xB4 \xE2\x96\xBD ` ).\xEF\xBD\xA1\xEF\xBD\x8F\xE2\x99\xA1",
165        b"\xE2\x95\xB0(*\xC2\xB4\xEF\xB8\xB6`*)\xE2\x95\xAF\xE2\x99\xA1",
166        b"(*\xCB\x98\xEF\xB8\xB6\xCB\x98*).\xEF\xBD\xA1.:*\xE2\x99\xA1",
167        b"(\xE2\x99\xA1\xCB\x99\xEF\xB8\xB6\xCB\x99\xE2\x99\xA1)",
168        b"\xE2\x99\xA1\xEF\xBC\xBC(\xEF\xBF\xA3\xE2\x96\xBD\xEF\xBF\xA3)\xEF\xBC\x8F\xE2\x99\xA1",
169        b"(\xE2\x89\xA7\xE2\x97\xA1\xE2\x89\xA6) \xE2\x99\xA1",
170        b"(\xE2\x8C\x92\xE2\x96\xBD\xE2\x8C\x92)\xE2\x99\xA1",
171        b"(*\xC2\xAF \xC2\xB3\xC2\xAF*)\xE2\x99\xA1",
172        b"(\xE3\x81\xA3\xCB\x98\xD0\xB7(\xCB\x98\xE2\x8C\xA3\xCB\x98 ) \xE2\x99\xA1",
173        b"\xE2\x99\xA1 (\xCB\x98\xE2\x96\xBD\xCB\x98>\xD4\x85( \xCB\x98\xE2\x8C\xA3\xCB\x98)",
174        b"( \xCB\x98\xE2\x8C\xA3\xCB\x98)\xE2\x99\xA1(\xCB\x98\xE2\x8C\xA3\xCB\x98 )",
175        b"(/^-^(^ ^*)/ \xE2\x99\xA1",
176        b"\xD9\xA9(\xE2\x99\xA1\xCE\xB5\xE2\x99\xA1)\xDB\xB6",
177        b"\xCF\x83(\xE2\x89\xA7\xCE\xB5\xE2\x89\xA6\xCF\x83) \xE2\x99\xA1",
178        b"\xE2\x99\xA1 (\xE2\x87\x80 3 \xE2\x86\xBC)",
179        b"\xE2\x99\xA1 (\xEF\xBF\xA3\xD0\x97\xEF\xBF\xA3)",
180        b"(\xE2\x9D\xA4\xCF\x89\xE2\x9D\xA4)",
181        b"(\xCB\x98\xE2\x88\x80\xCB\x98)/(\xCE\xBC\xE2\x80\xBF\xCE\xBC) \xE2\x9D\xA4",
182        b"\xE2\x9D\xA4 (\xC9\x94\xCB\x86\xD0\xB7(\xCB\x86\xE2\x8C\xA3\xCB\x86c)",
183        b"(\xC2\xB4\xE2\x99\xA1\xE2\x80\xBF\xE2\x99\xA1`)",
184        b"(\xC2\xB0\xE2\x97\xA1\xC2\xB0\xE2\x99\xA1)",
185        b"\xCE\xA3>\xE2\x80\x95(\xE3\x80\x83\xC2\xB0\xCF\x89\xC2\xB0\xE3\x80\x83)\xE2\x99\xA1\xE2\x86\x92",
186        b"(\xC2\xB4,,\xE2\x80\xA2\xCF\x89\xE2\x80\xA2,,)\xE2\x99\xA1",
187        b"(\xC2\xB4\xEA\x92\xB3`)\xE2\x99\xA1",
188    ];
189
190    /// To depict embarrassment, you can use ; character (something like a drop of sweat on a face), or characters for blush (*, o). In addition, you can try to make your emoticon cover its face by its hands in embarrassment.
191    pub const EMBARRESMENT: [&[u8]; 24] = [
192        b"(\xE2\x8C\x92_\xE2\x8C\x92;)",
193        b"(o^ ^o)",
194        b"(*/\xCF\x89\xEF\xBC\xBC)",
195        b"(*/\xE3\x80\x82\xEF\xBC\xBC)",
196        b"(*/_\xEF\xBC\xBC)",
197        b"(*\xEF\xBE\x89\xCF\x89\xEF\xBE\x89)",
198        b"(o-_-o)",
199        b"(*\xCE\xBC_\xCE\xBC)",
200        b"( \xE2\x97\xA1\xE2\x80\xBF\xE2\x97\xA1 *)",
201        b"(\xE1\xB5\x94.\xE1\xB5\x94)",
202        b"(*\xEF\xBE\x89\xE2\x88\x80`*)",
203        b"(//\xE2\x96\xBD//)",
204        b"(//\xCF\x89//)",
205        b"(\xE3\x83\x8E*\xC2\xB0\xE2\x96\xBD\xC2\xB0*)",
206        b"(*^.^*)",
207        b"(*\xEF\xBE\x89\xE2\x96\xBD\xEF\xBE\x89)",
208        b"(\xEF\xBF\xA3\xE2\x96\xBD\xEF\xBF\xA3*)\xE3\x82\x9E",
209        b"(\xE2\x81\x84 \xE2\x81\x84\xE2\x80\xA2\xE2\x81\x84\xCF\x89\xE2\x81\x84\xE2\x80\xA2\xE2\x81\x84 \xE2\x81\x84)",
210        b"(*/\xE2\x96\xBD\xEF\xBC\xBC*)",
211        b"(\xE2\x81\x84 \xE2\x81\x84>\xE2\x81\x84 \xE2\x96\xBD \xE2\x81\x84<\xE2\x81\x84 \xE2\x81\x84)",
212        b"(\xE0\xB8\x87 \xE0\xB8\xB7\xE2\x96\xBF \xE0\xB8\xB7)\xE0\xB8\xA7",
213        b"( \xE3\x80\x83\xE2\x96\xBD\xE3\x80\x83)",
214        b"(/\xE2\x96\xBF\xEF\xBC\xBC )",
215        b"(///\xEF\xBF\xA3 \xEF\xBF\xA3///)",
216    ];
217
218    /// The expression of sympathy or compassion requires at least two Japanese emoticons: one of them will be upset about something, and the other will calm him down. You can use kaomoji from "sadness" category for the first type. A key element for the second one will be "a calming hand" (ノ", ノ'or ヾ) or "shoulder of support" (see examples).
219    pub const SYMPATHY: [&[u8]; 12] = [
220        b"(\xE3\x83\x8E_<\xE3\x80\x82)\xE3\x83\xBE(\xC2\xB4 \xE2\x96\xBD ` )",
221        b"\xEF\xBD\xA1\xEF\xBD\xA5\xEF\xBE\x9F\xEF\xBD\xA5(\xEF\xBE\x89\xD0\x94`)\xE3\x83\xBD(\xEF\xBF\xA3\xCF\x89\xEF\xBF\xA3 )",
222        b"\xCF\x81(- \xCF\x89 -\xE3\x80\x81)\xE3\x83\xBE(\xEF\xBF\xA3\xCF\x89\xEF\xBF\xA3; )",
223        b"\xE3\x83\xBD(\xEF\xBF\xA3\xCF\x89\xEF\xBF\xA3(\xE3\x80\x82\xE3\x80\x82 )\xE3\x82\x9D",
224        b"(*\xC2\xB4 I `)\xEF\xBE\x89\xEF\xBE\x9F(\xEF\xBE\x89\xD0\x94\xEF\xBD\x80\xEF\xBE\x9F)\xEF\xBE\x9F\xEF\xBD\xA1",
225        b"\xE3\x83\xBD(~_~(\xE3\x83\xBB_\xE3\x83\xBB )\xE3\x82\x9D",
226        b"(\xEF\xBE\x89_\xEF\xBC\x9B)\xE3\x83\xBE(\xC2\xB4 \xE2\x88\x80 ` )",
227        b"(; \xCF\x89 ; )\xE3\x83\xBE(\xC2\xB4\xE2\x88\x80`* )",
228        b"(*\xC2\xB4\xE3\x83\xBC)\xEF\xBE\x89(\xE3\x83\x8E\xD0\xB4`)",
229        b"(\xC2\xB4-\xCF\x89-`( _ _ )",
230        b"(\xE3\x81\xA3\xC2\xB4\xCF\x89`)\xEF\xBE\x89(\xE2\x95\xA5\xCF\x89\xE2\x95\xA5)",
231        b"(\xEF\xBD\x8F\xE3\x83\xBB_\xE3\x83\xBB)\xE3\x83\x8E\xE2\x80\x9D(\xE3\x83\x8E_<\xE3\x80\x81)",
232    ];
233
234    #[cfg(test)]
235    mod tests {
236        #[test]
237        fn joy() {
238            test!(super::JOY)
239        }
240
241        #[test]
242        fn love() {
243            test!(super::LOVE)
244        }
245
246        #[test]
247        fn embarrassment() {
248            test!(super::EMBARRESMENT)
249        }
250
251        #[test]
252        fn sympathy() {
253            test!(super::SYMPATHY)
254        }
255    }
256}
257
258pub mod negative_emotions {
259    /// Dissatisfaction can be easily expressed by kaomoji's facial wrinkling. You can use >< characters for dissatisfied or displeased Japanese emoticons. Additional wrinkles can be added by # character. You can also express dissatisfaction with eyes like ¬ ¬ or ¯ ¯ and with a well-chosen mouth. Such techniques are quite common in anime and manga.
260    pub const DISSATISFACTION: [&[u8]; 25] = [
261        b"(\xEF\xBC\x83\xEF\xBC\x9E\xEF\xBC\x9C)",
262        b"(\xEF\xBC\x9B\xE2\x8C\xA3\xCC\x80_\xE2\x8C\xA3\xCC\x81)",
263        b"\xE2\x98\x86\xEF\xBD\x8F(\xEF\xBC\x9E\xEF\xBC\x9C\xEF\xBC\x9B)\xE2\x97\x8B",
264        b"(\xEF\xBF\xA3 \xEF\xBF\xA3|||)",
265        b"(\xEF\xBC\x9B\xEF\xBF\xA3\xD0\x94\xEF\xBF\xA3)",
266        b"(\xEF\xBF\xA3\xE2\x96\xA1\xEF\xBF\xA3\xE3\x80\x8D)",
267        b"(\xEF\xBC\x83\xEF\xBF\xA30\xEF\xBF\xA3)",
268        b"(\xEF\xBC\x83\xEF\xBF\xA3\xCF\x89\xEF\xBF\xA3)",
269        b"(\xEF\xBF\xA2_\xEF\xBF\xA2;)",
270        b"(\xEF\xBC\x9E\xEF\xBD\x8D\xEF\xBC\x9C)",
271        b"(\xE3\x80\x8D\xC2\xB0\xE3\x83\xAD\xC2\xB0)\xE3\x80\x8D",
272        b"(\xE3\x80\x83\xEF\xBC\x9E\xEF\xBC\xBF\xEF\xBC\x9C;\xE3\x80\x83)",
273        b"(\xEF\xBC\xBE\xEF\xBC\xBE\xEF\xBC\x83)",
274        b"(\xEF\xB8\xB6\xEF\xB8\xB9\xEF\xB8\xBA)",
275        b"(\xEF\xBF\xA3\xE3\x83\x98\xEF\xBF\xA3)",
276        b"<(\xEF\xBF\xA3 \xEF\xB9\x8C \xEF\xBF\xA3)>",
277        b"(\xEF\xBF\xA3\xEF\xB8\xBF\xEF\xBF\xA3)",
278        b"(\xEF\xBC\x9E\xEF\xB9\x8F\xEF\xBC\x9C)",
279        b"(--_--)",
280        b"\xE5\x87\xB8(\xEF\xBF\xA3\xE3\x83\x98\xEF\xBF\xA3)",
281        b"\xE3\x83\xBE( \xEF\xBF\xA3O\xEF\xBF\xA3)\xE3\x83\x84",
282        b"(\xE2\x87\x80\xE2\x80\xB8\xE2\x86\xBC\xE2\x80\xB6)",
283        b"o(>< )o",
284        b"(\xE3\x80\x8D\xEF\xBC\x9E\xEF\xBC\x9C)\xE3\x80\x8D",
285        b"(\xE1\x97\x92\xE1\x97\xA3\xE1\x97\x95)\xD5\x9E",
286    ];
287
288    /// The secret of angry or evil emoticons is in their eyes. Use \` and ´ or ` and ´. Just don't change the characters' order, otherwise your angry emoticon will become friendly and kind (compare: \` ´ - evil eyes, ´ ` - kind eyes). In addition, you can add "wrinkles" # and their stronger forms: メ or ╬; and 凸 (middle finger) and ψ (claws) as an arm. You can also use "snarl" 皿 or 益.
289    pub const ANGER: [&[u8]; 33] = [
290        b"(\xEF\xBC\x83`\xD0\x94\xC2\xB4)",
291        b"(`\xE7\x9A\xBF\xC2\xB4\xEF\xBC\x83)",
292        b"( ` \xCF\x89 \xC2\xB4 )",
293        b"\xE3\x83\xBD( `\xD0\xB4\xC2\xB4*)\xE3\x83\x8E",
294        b"(\xE3\x83\xBB`\xCF\x89\xC2\xB4\xE3\x83\xBB)",
295        b"(`\xE3\x83\xBC\xC2\xB4)",
296        b"\xE3\x83\xBD(`\xE2\x8C\x92\xC2\xB4\xE3\x83\xA1)\xE3\x83\x8E",
297        b"\xE5\x87\xB8(`\xE2\x96\xB3\xC2\xB4\xEF\xBC\x83)",
298        b"( `\xCE\xB5\xC2\xB4 )",
299        b"\xCF\x88( ` \xE2\x88\x87 \xC2\xB4 )\xCF\x88",
300        b"\xE3\x83\xBE(`\xE3\x83\x98\xC2\xB4)\xEF\xBE\x89\xEF\xBE\x9E",
301        b"\xE3\x83\xBD(\xE2\x80\xB5\xEF\xB9\x8F\xC2\xB4)\xE3\x83\x8E",
302        b"(\xEF\xBE\x92` \xEF\xBE\x9B \xC2\xB4)",
303        b"(\xE2\x95\xAC`\xE7\x9B\x8A\xC2\xB4)",
304        b"\xE2\x94\x8C\xE2\x88\xA9\xE2\x94\x90(\xE2\x97\xA3_\xE2\x97\xA2)\xE2\x94\x8C\xE2\x88\xA9\xE2\x94\x90",
305        b"\xE5\x87\xB8( ` \xEF\xBE\x9B \xC2\xB4 )\xE5\x87\xB8",
306        b"\xCE\xA3(\xE2\x96\xBC\xE2\x96\xA1\xE2\x96\xBC\xE3\x83\xA1)",
307        b"(\xC2\xB0\xE3\x85\x82\xC2\xB0\xE2\x95\xAC)",
308        b"\xCF\x88(\xE2\x96\xBC\xE3\x81\xB8\xE2\x96\xBC\xE3\x83\xA1)\xEF\xBD\x9E\xE2\x86\x92",
309        b"(\xE3\x83\x8E\xC2\xB0\xE7\x9B\x8A\xC2\xB0)\xE3\x83\x8E",
310        b"(\xD2\x82 `\xD0\xB7\xC2\xB4 )",
311        b"(\xE2\x80\xA1\xE2\x96\xBC\xE7\x9B\x8A\xE2\x96\xBC)",
312        b"(\xD2\x82` \xEF\xBE\x9B \xC2\xB4)\xE5\x87\xB8",
313        b"((\xE2\x95\xAC\xE2\x97\xA3\xEF\xB9\x8F\xE2\x97\xA2))",
314        b"\xD9\xA9(\xE2\x95\xAC\xCA\x98\xE7\x9B\x8A\xCA\x98\xE2\x95\xAC)\xDB\xB6",
315        b"(\xE2\x95\xAC \xC3\x92\xEF\xB9\x8F\xC3\x93)",
316        b"\xEF\xBC\xBC\xEF\xBC\xBC\xD9\xA9(\xE0\xB9\x91`^\xC2\xB4\xE0\xB9\x91)\xDB\xB6\xEF\xBC\x8F\xEF\xBC\x8F",
317        b"(\xE5\x87\xB8\xE0\xB2\xA0\xE7\x9B\x8A\xE0\xB2\xA0)\xE5\x87\xB8",
318        b"\xE2\x86\x91_(\xCE\xA6w\xCE\xA6)\xCE\xA8",
319        b"\xE2\x86\x90~(\xCE\xA8\xE2\x96\xBC\xEF\xBD\xB0\xE2\x96\xBC)\xE2\x88\x88",
320        b"\xE0\xAD\xA7((#\xCE\xA6\xE7\x9B\x8A\xCE\xA6#))\xE0\xAD\xA8",
321        b"\xD9\xA9(\xE0\xB0\xA0\xE7\x9B\x8A\xE0\xB0\xA0)\xDB\xB6",
322        b"(\xEF\xBE\x89\xE0\xB2\xA5\xE7\x9B\x8A\xE0\xB2\xA5)\xEF\xBE\x89",
323    ];
324
325    /// Sad or crying emoticons are quite easy to create. Use Т Т, ; ;, > < and other characters for crying eyes. You can also use / \ or ノ ヽ to cover your face.
326    pub const SADNESS: [&[u8]; 36] = [
327        b"(\xE3\x83\x8E_<\xE3\x80\x82)",
328        b"(-_-)",
329        b"(\xC2\xB4-\xCF\x89-`)",
330        b".\xEF\xBD\xA5\xEF\xBE\x9F\xEF\xBE\x9F\xEF\xBD\xA5(\xEF\xBC\x8F\xCF\x89\xEF\xBC\xBC)\xEF\xBD\xA5\xEF\xBE\x9F\xEF\xBE\x9F\xEF\xBD\xA5.",
331        b"(\xCE\xBC_\xCE\xBC)",
332        b"(\xEF\xBE\x89\xD0\x94`)",
333        b"(-\xCF\x89-\xE3\x80\x81)",
334        b"\xE3\x80\x82\xE3\x82\x9C\xE3\x82\x9C(\xC2\xB4\xEF\xBC\xAF`) \xE3\x82\x9C\xE3\x82\x9C\xE3\x80\x82",
335        b"o(T\xE3\x83\x98To)",
336        b"( ; \xCF\x89 ; )",
337        b"(\xEF\xBD\xA1\xE2\x95\xAF\xEF\xB8\xB5\xE2\x95\xB0\xEF\xBD\xA1)",
338        b"\xEF\xBD\xA1\xEF\xBD\xA5\xEF\xBE\x9F\xEF\xBE\x9F*(>\xD0\xB4<)*\xEF\xBE\x9F\xEF\xBE\x9F\xEF\xBD\xA5\xEF\xBD\xA1",
339        b"( \xEF\xBE\x9F\xEF\xBC\x8C_\xE3\x82\x9D\xEF\xBD\x80)",
340        b"(\xE4\xB8\xAA_\xE4\xB8\xAA)",
341        b"(\xE2\x95\xAF\xEF\xB8\xB5\xE2\x95\xB0,)",
342        b"\xEF\xBD\xA1\xEF\xBD\xA5\xEF\xBE\x9F(\xEF\xBE\x9F><\xEF\xBE\x9F)\xEF\xBE\x9F\xEF\xBD\xA5\xEF\xBD\xA1",
343        b"( \xE2\x95\xA5\xCF\x89\xE2\x95\xA5 )",
344        b"(\xE2\x95\xAF_\xE2\x95\xB0)",
345        b"(\xE2\x95\xA5_\xE2\x95\xA5)",
346        b".\xEF\xBD\xA1\xEF\xBD\xA5\xEF\xBE\x9F\xEF\xBE\x9F\xEF\xBD\xA5(\xEF\xBC\x9E_\xEF\xBC\x9C)\xEF\xBD\xA5\xEF\xBE\x9F\xEF\xBE\x9F\xEF\xBD\xA5\xEF\xBD\xA1.",
347        b"(\xEF\xBC\x8F\xCB\x8D\xE3\x83\xBB\xE3\x80\x81)",
348        b"(\xE3\x83\x8E_<\xE3\x80\x81)",
349        b"(\xE2\x95\xA5\xEF\xB9\x8F\xE2\x95\xA5)",
350        b"\xEF\xBD\xA1\xEF\xBE\x9F(\xEF\xBD\xA1\xEF\xBE\x89\xCF\x89\xE3\x83\xBD\xEF\xBD\xA1)\xEF\xBE\x9F\xEF\xBD\xA1",
351        b"(\xE3\x81\xA4\xCF\x89`\xEF\xBD\xA1)",
352        b"(\xEF\xBD\xA1T \xCF\x89 T\xEF\xBD\xA1)",
353        b"(\xEF\xBE\x89\xCF\x89\xEF\xBD\xA5\xEF\xBD\xA4)",
354        b"\xEF\xBD\xA5\xEF\xBE\x9F\xEF\xBD\xA5(\xEF\xBD\xA1>\xCF\x89<\xEF\xBD\xA1)\xEF\xBD\xA5\xEF\xBE\x9F\xEF\xBD\xA5",
355        b"(T_T)",
356        b"(>_<)",
357        b"(\xE3\x81\xA3\xCB\x98\xCC\xA9\xE2\x95\xAD\xE2\x95\xAE\xCB\x98\xCC\xA9)\xE3\x81\xA3",
358        b"\xEF\xBD\xA1\xEF\xBE\x9F\xEF\xBD\xA5 (>\xEF\xB9\x8F<) \xEF\xBD\xA5\xEF\xBE\x9F\xEF\xBD\xA1",
359        b"o(\xE3\x80\x92\xEF\xB9\x8F\xE3\x80\x92)o",
360        b"(\xEF\xBD\xA1\xE2\x80\xA2\xCC\x81\xEF\xB8\xBF\xE2\x80\xA2\xCC\x80\xEF\xBD\xA1)",
361        b"(\xE0\xB2\xA5\xEF\xB9\x8F\xE0\xB2\xA5)",
362        b"(\xE0\xB2\xA1\xE2\x80\xB8\xE0\xB2\xA1)",
363    ];
364
365    /// Use characters > < combined with special effects like ⌒☆ to depict pain. You can also use eyes of “x” type for “stunned” emoticons. Of course, there are also many other ways.
366    pub const PAIN: [&[u8]; 15] = [
367        b"~(>_<~)",
368        b"\xE2\x98\x86\xE2\x8C\x92(> _ <)",
369        b"\xE2\x98\x86\xE2\x8C\x92(>\xE3\x80\x82<)",
370        b"(\xE2\x98\x86_@)",
371        b"(\xC3\x97_\xC3\x97)",
372        b"(x_x)V",
373        b"(\xC3\x97_\xC3\x97)\xE2\x8C\x92\xE2\x98\x86",
374        b"(x_x)\xE2\x8C\x92\xE2\x98\x86",
375        b"(\xC3\x97\xEF\xB9\x8F\xC3\x97)",
376        b"\xE2\x98\x86(\xEF\xBC\x83\xC3\x97\xC3\x97)",
377        b"(\xEF\xBC\x8B_\xEF\xBC\x8B)",
378        b"[ \xC2\xB1 _ \xC2\xB1 ]",
379        b"\xD9\xA9(\xC3\x97 \xC3\x97)\xDB\xB6",
380        b"_:(\xC2\xB4\xE0\xBD\x80`\xE3\x80\x8D \xE2\x88\xA0):_",
381        b"(\xEF\xBE\x92\xEF\xB9\x8F\xEF\xBE\x92)",
382    ];
383
384    /// For scared or frightened Japanese emoji use forward and backward slashes and similar characters depicting that they hide their faces in fear. You can also try to depict screaming, waving their arms and so on.
385    pub const FEAR: [&[u8]; 17] = [
386        b"(\xE3\x83\x8E\xCF\x89\xE3\x83\xBD)",
387        b"(\xEF\xBC\x8F\xE3\x80\x82\xEF\xBC\xBC)",
388        b"(\xEF\xBE\x89_\xE3\x83\xBD)",
389        b"..\xE3\x83\xBB\xE3\x83\xBE(\xE3\x80\x82\xEF\xBC\x9E\xEF\xBC\x9C)\xE3\x82\xB7",
390        b"(\xE2\x80\xB3\xE3\x83\xAD\xE3\x82\x9B)",
391        b"(;;;*_*)",
392        b"(\xE3\x83\xBB\xE4\xBA\xBA\xE3\x83\xBB)",
393        b"\xEF\xBC\xBC(\xE3\x80\x87_\xEF\xBD\x8F)\xEF\xBC\x8F",
394        b"(/\xCF\x89\xEF\xBC\xBC)",
395        b"(/_\xEF\xBC\xBC)",
396        b"\xE3\x80\x9C(\xEF\xBC\x9E\xEF\xBC\x9C)\xE3\x80\x9C",
397        b"\xCE\xA3(\xC2\xB0\xE2\x96\xB3\xC2\xB0|||)\xEF\xB8\xB4",
398        b"(((\xEF\xBC\x9E\xEF\xBC\x9C)))",
399        b"{{ (>_<) }}",
400        b"\xEF\xBC\xBC(\xC2\xBA \xE2\x96\xA1 \xC2\xBA l|l)/",
401        b"\xE3\x80\xA3( \xC2\xBA\xCE\x94\xC2\xBA )\xE3\x80\xA3",
402        b"\xE2\x96\x93\xE2\x96\x92\xE2\x96\x91(\xC2\xB0\xE2\x97\xA1\xC2\xB0)\xE2\x96\x91\xE2\x96\x92\xE2\x96\x93",
403    ];
404
405    #[cfg(test)]
406    mod tests {
407        #[test]
408        fn dissatisfaction() {
409            test!(super::DISSATISFACTION)
410        }
411
412        #[test]
413        fn anger() {
414            test!(super::ANGER)
415        }
416
417        #[test]
418        fn sadness() {
419            test!(super::SADNESS)
420        }
421
422        #[test]
423        fn pain() {
424            test!(super::PAIN)
425        }
426
427        #[test]
428        fn fear() {
429            test!(super::FEAR)
430        }
431    }
432}
433
434pub mod neutral_emotions {
435    /// You can make indifferent / whatever emoticons by adding special characters for arms (┐ ┌ or ╮ ╭, and various combinations with forward and backward slashes and related characters). You can use ー ー or ˇ ˇ for indifferent eyes.
436    pub const INDIFFERENCE: [&[u8]; 23] = [
437        b"\xE3\x83\xBD(\xE3\x83\xBC_\xE3\x83\xBC )\xE3\x83\x8E",
438        b"\xE3\x83\xBD(\xC2\xB4\xE3\x83\xBC` )\xE2\x94\x8C",
439        b"\xE2\x94\x90(\xE2\x80\x98\xEF\xBD\x9E` )\xE2\x94\x8C",
440        b"\xE3\x83\xBD(\xE3\x80\x80\xEF\xBF\xA3\xD0\xB4\xEF\xBF\xA3)\xE3\x83\x8E",
441        b"\xE2\x94\x90(\xEF\xBF\xA3\xE3\x83\x98\xEF\xBF\xA3)\xE2\x94\x8C",
442        b"\xE3\x83\xBD(\xEF\xBF\xA3\xEF\xBD\x9E\xEF\xBF\xA3\xE3\x80\x80)\xE3\x83\x8E",
443        b"\xE2\x95\xAE(\xEF\xBF\xA3_\xEF\xBF\xA3)\xE2\x95\xAD",
444        b"\xE3\x83\xBD(\xCB\x87\xE3\x83\x98\xCB\x87)\xE3\x83\x8E",
445        b"\xE2\x94\x90(\xEF\xBF\xA3\xEF\xBD\x9E\xEF\xBF\xA3)\xE2\x94\x8C",
446        b"\xE2\x94\x90(\xEF\xB8\xB6\xE2\x96\xBD\xEF\xB8\xB6)\xE2\x94\x8C",
447        b"\xE2\x95\xAE(\xEF\xBF\xA3\xEF\xBD\x9E\xEF\xBF\xA3)\xE2\x95\xAD",
448        b"\xC2\xAF\\_(\xE3\x83\x84)_/\xC2\xAF",
449        b"\xE2\x94\x90( \xC2\xB4 \xD0\xB4 ` )\xE2\x94\x8C",
450        b"\xE2\x95\xAE(\xEF\xB8\xB6\xEF\xB8\xBF\xEF\xB8\xB6)\xE2\x95\xAD",
451        b"\xE2\x94\x90(\xEF\xBF\xA3\xE2\x88\x80\xEF\xBF\xA3)\xE2\x94\x8C",
452        b"\xE2\x94\x90( \xCB\x98 \xEF\xBD\xA4 \xCB\x98 )\xE2\x94\x8C",
453        b"\xE2\x95\xAE(\xEF\xB8\xB6\xE2\x96\xBD\xEF\xB8\xB6)\xE2\x95\xAD",
454        b"\xE2\x95\xAE( \xCB\x98 \xEF\xBD\xA4 \xCB\x98 )\xE2\x95\xAD",
455        b"\xE2\x94\x90( \xCB\x98_\xCB\x98 )\xE2\x94\x8C",
456        b"\xE2\x95\xAE( \xCB\x98_\xCB\x98 )\xE2\x95\xAD",
457        b"\xE2\x94\x90(\xEF\xBF\xA3\xE3\x83\xAE\xEF\xBF\xA3)\xE2\x94\x8C",
458        b"\xE1\x95\x95( \xE1\x90\x9B )\xE1\x95\x97",
459        b"\xE2\x94\x90(\xE3\x82\xB7)\xE2\x94\x8C",
460    ];
461
462    /// Use "blank eyes" ・ ・. You can add ; or 〃 to strengthen the effect. The eyes like  ̄  ̄ would be suitable too. Finally, you can add such effects as thinking (・・・), raising hands (┐ ┌ or ╮ ╭) and propping the head with an arm ( ゞ).
463    pub const CONFUSSION: [&[u8]; 23] = [
464        b"(\xEF\xBF\xA3\xCF\x89\xEF\xBF\xA3;)",
465        b"\xCF\x83(\xEF\xBF\xA3\xE3\x80\x81\xEF\xBF\xA3\xE3\x80\x83)",
466        b"(\xEF\xBF\xA3\xEF\xBD\x9E\xEF\xBF\xA3;)",
467        b"(-_-;)\xE3\x83\xBB\xE3\x83\xBB\xE3\x83\xBB",
468        b"\xE2\x94\x90('\xEF\xBD\x9E`;)\xE2\x94\x8C",
469        b"(\xE3\x83\xBB_\xE3\x83\xBB\xE3\x83\xBE",
470        b"(\xE3\x80\x83\xEF\xBF\xA3\xCF\x89\xEF\xBF\xA3\xE3\x80\x83\xE3\x82\x9E",
471        b"\xE2\x94\x90(\xEF\xBF\xA3\xE3\x83\x98\xEF\xBF\xA3;)\xE2\x94\x8C",
472        b"(\xE3\x83\xBB_\xE3\x83\xBB;)",
473        b"(\xEF\xBF\xA3_\xEF\xBF\xA3)\xE3\x83\xBB\xE3\x83\xBB\xE3\x83\xBB",
474        b"\xE2\x95\xAE(\xEF\xBF\xA3\xCF\x89\xEF\xBF\xA3;)\xE2\x95\xAD",
475        b"(\xC2\xAF . \xC2\xAF;)",
476        b"(\xEF\xBC\xA0_\xEF\xBC\xA0)",
477        b"(\xE3\x83\xBB\xE3\x83\xBB;)\xE3\x82\x9E",
478        b"\xCE\xA3(\xEF\xBF\xA3\xE3\x80\x82\xEF\xBF\xA3\xEF\xBE\x89)",
479        b"(\xE3\x83\xBB\xE3\x83\xBB ) ?",
480        b"(\xE2\x80\xA2\xE0\xB8\xB4_\xE2\x80\xA2\xE0\xB8\xB4)?",
481        b"(\xE2\x97\x8E \xE2\x97\x8E)\xE3\x82\x9E",
482        b"(\xE3\x83\xBC\xE3\x83\xBC;)",
483        b"\xE1\x83\x9A(\xE0\xB2\xA0_\xE0\xB2\xA0 \xE1\x83\x9A)",
484        b"\xE1\x83\x9A(\xC2\xAF\xE3\x83\xAD\xC2\xAF\"\xE1\x83\x9A)",
485        b"(\xC2\xAF . \xC2\xAF\xD9\xA5)",
486        b"(\xC2\xAF \xC2\xAF\xD9\xA5)",
487    ];
488
489    /// For doubt Japanese emoticons use ¬ ¬, ¬ ¬ or arrows. This will create the impression that their eyes look toward as if they hear a lie.
490    pub const DOUBT: [&[u8]; 11] = [
491        b"(\xEF\xBF\xA2_\xEF\xBF\xA2)",
492        b"(\xE2\x86\x92_\xE2\x86\x92)",
493        b"(\xEF\xBF\xA2 \xEF\xBF\xA2)",
494        b"(\xEF\xBF\xA2\xE2\x80\xBF\xEF\xBF\xA2 )",
495        b"(\xC2\xAC_\xC2\xAC )",
496        b"(\xE2\x86\x90_\xE2\x86\x90)",
497        b"(\xC2\xAC \xC2\xAC )",
498        b"(\xC2\xAC\xE2\x80\xBF\xC2\xAC )",
499        b"(\xE2\x86\xBC_\xE2\x86\xBC)",
500        b"(\xE2\x87\x80_\xE2\x87\x80)",
501        b"(\xE1\x93\x80 \xE1\x93\x80)",
502    ];
503
504    /// For shocked and surprised emoticons use mouth wide open (o, 〇, ロ), surprised eyes (O O, ⊙ ⊙) and raised hands. You can also add character Σ (sharp jerk) or some cofusion (character ;). Furthermore, you can try to use big eyes in combination with small mouth (for contrast).
505    pub const SUPRISE: [&[u8]; 14] = [
506        b"w(\xC2\xB0\xEF\xBD\x8F\xC2\xB0)w",
507        b"\xE3\x83\xBD(\xC2\xB0\xE3\x80\x87\xC2\xB0)\xEF\xBE\x89",
508        b"\xCE\xA3(O_O)",
509        b"\xCE\xA3(\xC2\xB0\xE3\x83\xAD\xC2\xB0)",
510        b"(\xE2\x8A\x99_\xE2\x8A\x99)",
511        b"(o_O)",
512        b"(O_O;)",
513        b"(O.O)",
514        b"(\xC2\xB0\xE3\x83\xAD\xC2\xB0) !",
515        b"(o_O) !",
516        b"(\xE2\x96\xA1_\xE2\x96\xA1)",
517        b"\xCE\xA3(\xE2\x96\xA1_\xE2\x96\xA1)",
518        b"\xE2\x88\x91(O_O;)",
519        b"( : \xE0\xB1\xA6 \xE2\x80\xB8 \xE0\xB1\xA6 : )",
520    ];
521
522    #[cfg(test)]
523    mod tests {
524        #[test]
525        fn indifference() {
526            test!(super::INDIFFERENCE)
527        }
528
529        #[test]
530        fn confusion() {
531            test!(super::CONFUSSION)
532        }
533
534        #[test]
535        fn doubt() {
536            test!(super::DOUBT)
537        }
538
539        #[test]
540        fn suprise() {
541            test!(super::SUPRISE)
542        }
543    }
544}
545
546pub mod various_actions {
547    /// For greeting (and farewell) Japanese emoticons you can use forward and backward slashes as a standard. However, there are a few more interesting options, such as ノ or ノ. And if you want your emoticon to wave its hand, try to use ヾ, ノ゙ and their various combinations with the "tilde".
548    pub const GREETING: [&[u8]; 28] = [
549        b"(*\xE3\x83\xBB\xCF\x89\xE3\x83\xBB)\xEF\xBE\x89",
550        b"(\xEF\xBF\xA3\xE2\x96\xBD\xEF\xBF\xA3)\xE3\x83\x8E",
551        b"(\xC2\xB0\xE2\x96\xBD\xC2\xB0)/",
552        b"( \xC2\xB4 \xE2\x88\x80 ` )\xEF\xBE\x89",
553        b"(^-^*)/",
554        b"(\xEF\xBC\xA0\xC2\xB4\xE3\x83\xBC`)\xEF\xBE\x89\xEF\xBE\x9E",
555        b"(\xC2\xB4\xE2\x80\xA2 \xCF\x89 \xE2\x80\xA2`)\xEF\xBE\x89",
556        b"( \xC2\xB0 \xE2\x88\x80 \xC2\xB0 )\xEF\xBE\x89\xEF\xBE\x9E",
557        b"\xE3\x83\xBE(*'\xE2\x96\xBD'*)",
558        b"\xEF\xBC\xBC(\xE2\x8C\x92\xE2\x96\xBD\xE2\x8C\x92)",
559        b"\xE3\x83\xBE(\xE2\x98\x86\xE2\x96\xBD\xE2\x98\x86)",
560        b"( \xC2\xB4 \xE2\x96\xBD ` )\xEF\xBE\x89",
561        b"(^\xEF\xBC\x90^)\xE3\x83\x8E",
562        b"~\xE3\x83\xBE(\xE3\x83\xBB\xCF\x89\xE3\x83\xBB)",
563        b"(\xE3\x83\xBB\xE2\x88\x80\xE3\x83\xBB)\xE3\x83\x8E",
564        b"\xE3\x83\xBE(\xE3\x83\xBB\xCF\x89\xE3\x83\xBB*)",
565        b"(*\xC2\xB0\xEF\xBD\xB0\xC2\xB0)\xEF\xBE\x89",
566        b"(\xE3\x83\xBB_\xE3\x83\xBB)\xE3\x83\x8E",
567        b"(o\xC2\xB4\xCF\x89`o)\xEF\xBE\x89",
568        b"( \xC2\xB4 \xE2\x96\xBD ` )/",
569        b"(\xEF\xBF\xA3\xCF\x89\xEF\xBF\xA3)/",
570        b"( \xC2\xB4 \xCF\x89 ` )\xE3\x83\x8E\xEF\xBE\x9E",
571        b"(\xE2\x8C\x92\xCF\x89\xE2\x8C\x92)\xEF\xBE\x89",
572        b"(o^ ^o)/",
573        b"(\xE2\x89\xA7\xE2\x96\xBD\xE2\x89\xA6)/",
574        b"(\xE2\x9C\xA7\xE2\x88\x80\xE2\x9C\xA7)/",
575        b"(o\xC2\xB4\xE2\x96\xBD`o)\xEF\xBE\x89",
576        b"(\xEF\xBF\xA3\xE2\x96\xBD\xEF\xBF\xA3)/",
577    ];
578
579    /// For hugging emoticons use respective outstretched arm characters.
580    pub const HUGGING: [&[u8]; 14] = [
581        b"(\xE3\x81\xA5\xEF\xBF\xA3 \xC2\xB3\xEF\xBF\xA3)\xE3\x81\xA5",
582        b"(\xE3\x81\xA4\xE2\x89\xA7\xE2\x96\xBD\xE2\x89\xA6)\xE3\x81\xA4",
583        b"(\xE3\x81\xA4\xE2\x9C\xA7\xCF\x89\xE2\x9C\xA7)\xE3\x81\xA4",
584        b"(\xE3\x81\xA5 \xE2\x97\x95\xE2\x80\xBF\xE2\x97\x95 )\xE3\x81\xA5",
585        b"(\xE2\x8A\x83\xEF\xBD\xA1\xE2\x80\xA2\xCC\x81\xE2\x80\xBF\xE2\x80\xA2\xCC\x80\xEF\xBD\xA1)\xE2\x8A\x83",
586        b"(\xE3\x81\xA4 . \xE2\x80\xA2\xCC\x81 _\xCA\x96 \xE2\x80\xA2\xCC\x80 .)\xE3\x81\xA4",
587        b"(\xE3\x81\xA3\xE0\xB2\xA0\xE2\x80\xBF\xE0\xB2\xA0)\xE3\x81\xA3",
588        b"(\xE3\x81\xA5\xE2\x97\xA1\xEF\xB9\x8F\xE2\x97\xA1)\xE3\x81\xA5",
589        b"\xE2\x8A\x82(\xC2\xB4\xE2\x80\xA2 \xCF\x89 \xE2\x80\xA2`\xE2\x8A\x82)",
590        b"\xE2\x8A\x82(\xEF\xBD\xA5\xCF\x89\xEF\xBD\xA5*\xE2\x8A\x82)",
591        b"\xE2\x8A\x82(\xEF\xBF\xA3\xE2\x96\xBD\xEF\xBF\xA3)\xE2\x8A\x83",
592        b"\xE2\x8A\x82( \xC2\xB4 \xE2\x96\xBD ` )\xE2\x8A\x83",
593        b"( ~*-*)~",
594        b"(\xEF\xBD\xA1\xE2\x80\xA2\xCC\x80\xE1\xB4\x97-)\xE2\x9C\xA7",
595    ];
596
597    /// Winking Japanese emoticons look cute and they are quite easy to be made. Just use different characters for left and right eye.
598    pub const WINKING: [&[u8]; 17] = [
599        b"(^_~)",
600        b"( \xEF\xBE\x9F\xEF\xBD\x8F\xE2\x8C\x92)",
601        b"(^_-)\xE2\x89\xA1\xE2\x98\x86",
602        b"(^\xCF\x89~)",
603        b"(>\xCF\x89^)",
604        b"(~\xE4\xBA\xBA^)",
605        b"(^_-)",
606        b"( -_\xE3\x83\xBB)",
607        b"(^_<)\xE3\x80\x9C\xE2\x98\x86",
608        b"(^\xE4\xBA\xBA<)\xE3\x80\x9C\xE2\x98\x86",
609        b"\xE2\x98\x86\xE2\x8C\x92(\xE2\x89\xA7\xE2\x96\xBD\xE2\x80\x8B\xC2\xB0 )",
610        b"\xE2\x98\x86\xE2\x8C\x92(\xE3\x82\x9D\xE3\x80\x82\xE2\x88\x82)",
611        b"(^_<)",
612        b"(^_\xE2\x88\x92)\xE2\x98\x86",
613        b"(\xEF\xBD\xA5\xCF\x89<)\xE2\x98\x86",
614        b"(^.~)\xE2\x98\x86",
615        b"(^.~)",
616    ];
617
618    /// In Japan, when expressing apology, it is common to perform a traditional bow. Therefore, apologizing Japanese emoticons are created this way. Use lowered eyes (_ _ or . .). If the bow is performed from a sitting position, you can use m m for the eyes. Otherwise, use characters < > for shoulders.
619    pub const APOLOGIZING: [&[u8]; 9] = [
620        b"m(_ _)m",
621        b"(\xE3\x82\xB7_ _)\xE3\x82\xB7",
622        b"m(. .)m",
623        b"<(_ _)>",
624        b"\xE4\xBA\xBA(_ _*)",
625        b"(*_ _)\xE4\xBA\xBA",
626        b"m(_ _;m)",
627        b"(m;_ _)m",
628        b"(\xE3\x82\xB7. .)\xE3\x82\xB7",
629    ];
630
631    /// If you want to depict nosebleeding / nosebleeds like in anime and manga use the following characters: i, ハ, ;, 〃.
632    pub const NOSEBLEEDING: [&[u8]; 8] = [
633        b"(*\xEF\xBF\xA3ii\xEF\xBF\xA3)",
634        b"(\xEF\xBF\xA3\xEF\xBE\x8A\xEF\xBF\xA3*)",
635        b"\\(\xEF\xBF\xA3\xEF\xBE\x8A\xEF\xBF\xA3)",
636        b"(\xEF\xBC\xBE\xE0\xBC\x8B\xE0\xBC\x8D\xEF\xBC\xBE)",
637        b"(\xEF\xBC\xBE\xE3\x80\x83\xEF\xBC\xBE)",
638        b"(\xEF\xBF\xA3 \xC2\xA8\xE3\x83\xBD\xEF\xBF\xA3)",
639        b"(\xEF\xBF\xA3 ;\xEF\xBF\xA3)",
640        b"(\xEF\xBF\xA3 ;;\xEF\xBF\xA3)",
641    ];
642
643    /// Using character | for hiding emoticons makes them look like if they are peeping from behind the wall hiding from somebody.
644    pub const HIDING: [&[u8]; 14] = [
645        b"|\xEF\xBD\xA5\xCF\x89\xEF\xBD\xA5)",
646        b"\xEF\xBE\x8D(\xEF\xBD\xA5_|",
647        b"|\xCF\x89\xEF\xBD\xA5)\xEF\xBE\x89",
648        b"\xE3\x83\xBE(\xEF\xBD\xA5|",
649        b"|\xD0\xB4\xEF\xBD\xA5)",
650        b"|_\xEF\xBF\xA3))",
651        b"|\xE2\x96\xBD//)",
652        b"\xE2\x94\xAC\xE2\x94\xB4\xE2\x94\xAC\xE2\x94\xB4\xE2\x94\xA4(\xEF\xBD\xA5_\xE2\x94\x9C\xE2\x94\xAC\xE2\x94\xB4\xE2\x94\xAC\xE2\x94\xB4",
653        b"\xE2\x94\xAC\xE2\x94\xB4\xE2\x94\xAC\xE2\x94\xB4\xE2\x94\xA4\xEF\xBD\xA5\xCF\x89\xEF\xBD\xA5)\xEF\xBE\x89",
654        b"\xE2\x94\xAC\xE2\x94\xB4\xE2\x94\xAC\xE2\x94\xB4\xE2\x94\xA4( \xCD\xA1\xC2\xB0 \xCD\x9C\xCA\x96\xE2\x94\x9C\xE2\x94\xAC\xE2\x94\xB4\xE2\x94\xAC\xE2\x94\xB4",
655        b"\xE2\x94\xAC\xE2\x94\xB4\xE2\x94\xAC\xE2\x94\xB4\xE2\x94\xA4(\xEF\xBD\xA5_\xE2\x94\x9C\xE2\x94\xAC\xE2\x94\xB4\xE2\x94\xAC\xE2\x94\xB4",
656        b"|_\xE3\x83\xBB)",
657        b"|\xEF\xBD\xA5\xD0\xB4\xEF\xBD\xA5)\xEF\xBE\x89",
658        b"|\xCA\x98\xE2\x80\xBF\xCA\x98)\xE2\x95\xAF",
659    ];
660
661    /// Character φ looks good as a pen, if you want to make writing emoticons. You can also add a few underscores or dots to depict the process of writing itself.
662    pub const WRITING: [&[u8]; 12] = [
663        b"__\xCF\x86(\xEF\xBC\x8E\xEF\xBC\x8E)",
664        b"( \xEF\xBF\xA3\xE3\x83\xBC\xEF\xBF\xA3)\xCF\x86__",
665        b"__\xCF\x86(\xE3\x80\x82\xE3\x80\x82)",
666        b"__\xCF\x86(\xEF\xBC\x8E\xEF\xBC\x8E;)",
667        b"\xE3\x83\xBE( `\xE3\x83\xBC\xC2\xB4)\xE3\x82\xB7\xCF\x86__",
668        b"__\xE3\x80\x86(\xEF\xBF\xA3\xE3\x83\xBC\xEF\xBF\xA3 )",
669        b"....\xCF\x86(\xE3\x83\xBB\xE2\x88\x80\xE3\x83\xBB*)",
670        b"___\xE3\x80\x86(\xE3\x83\xBB\xE2\x88\x80\xE3\x83\xBB)",
671        b"( ^\xE2\x96\xBD^)\xCF\x88__",
672        b"....\xCF\x86(\xEF\xB8\xB6\xE2\x96\xBD\xEF\xB8\xB6)\xCF\x86....",
673        b"( . .)\xCF\x86__",
674        b"__\xCF\x86(\xE2\x97\x8E\xE2\x97\x8E\xE3\x83\x98)",
675    ];
676
677    /// You can create running Japanese emoji by adding special motion effects. Among available charactrers are ε, =, ミ and C.
678    pub const RUNNING: [&[u8]; 9] = [
679        b"\xE2\x98\x86\xEF\xBE\x90(o*\xEF\xBD\xA5\xCF\x89\xEF\xBD\xA5)\xEF\xBE\x89",
680        b"C= C= C= C= C=\xE2\x94\x8C(;\xE3\x83\xBB\xCF\x89\xE3\x83\xBB)\xE2\x94\x98",
681        b"\xE2\x94\x80=\xE2\x89\xA1\xCE\xA3((( \xE3\x81\xA4\xEF\xBC\x9E\xEF\xBC\x9C)\xE3\x81\xA4",
682        b"\xCE\xB5=\xCE\xB5=\xCE\xB5=\xCE\xB5=\xE2\x94\x8C(;\xEF\xBF\xA3\xE2\x96\xBD\xEF\xBF\xA3)\xE2\x94\x98",
683        b"\xCE\xB5=\xCE\xB5=\xE2\x94\x8C( >_<)\xE2\x94\x98",
684        b"C= C= C= C=\xE2\x94\x8C( `\xE3\x83\xBC\xC2\xB4)\xE2\x94\x98",
685        b"\xCE\xB5===(\xE3\x81\xA3\xE2\x89\xA7\xCF\x89\xE2\x89\xA6)\xE3\x81\xA3",
686        b"\xE3\x83\xBD(\xEF\xBF\xA3\xD0\xB4\xEF\xBF\xA3;)\xE3\x83\x8E=3=3=3",
687        b"\xE3\x80\x82\xE3\x80\x82\xE3\x80\x82\xE3\x83\x9F\xE3\x83\xBD(\xE3\x80\x82\xEF\xBC\x9E\xEF\xBC\x9C)\xE3\x83\x8E",
688    ];
689
690    /// Use zzZ for snoring. You can also put your sleeping emoticon on a pillow [ ]. Simple as that!
691    pub const SLEEPING: [&[u8]; 10] = [
692        b"[(\xEF\xBC\x8D\xEF\xBC\x8D)]..zzZ",
693        b"(\xEF\xBC\x8D_\xEF\xBC\x8D) zzZ",
694        b"(\xE2\x88\xAA\xEF\xBD\xA1\xE2\x88\xAA)\xEF\xBD\xA1\xEF\xBD\xA1\xEF\xBD\xA1zzZ",
695        b"(\xEF\xBC\x8D\xCF\x89\xEF\xBC\x8D) zzZ",
696        b"(\xEF\xBF\xA3o\xEF\xBF\xA3) zzZZzzZZ",
697        b"(( _ _ ))..zzzZZ",
698        b"(\xEF\xBF\xA3\xCF\x81\xEF\xBF\xA3)..zzZZ",
699        b"(\xEF\xBC\x8D.\xEF\xBC\x8D)...zzz",
700        b"(\xEF\xBC\xBF \xEF\xBC\xBF*) Z z z",
701        b"(x . x) ~~zzZ",
702    ];
703
704    #[cfg(test)]
705    mod tests {
706        #[test]
707        fn greeting() {
708            test!(super::GREETING)
709        }
710
711        #[test]
712        fn hugging() {
713            test!(super::HUGGING)
714        }
715
716        #[test]
717        fn winking() {
718            test!(super::WINKING)
719        }
720
721        #[test]
722        fn apologizing() {
723            test!(super::APOLOGIZING)
724        }
725
726        #[test]
727        fn nosebleeding() {
728            test!(super::NOSEBLEEDING)
729        }
730
731        #[test]
732        fn hiding() {
733            test!(super::HIDING)
734        }
735
736        #[test]
737        fn writing() {
738            test!(super::WRITING)
739        }
740
741        #[test]
742        fn running() {
743            test!(super::RUNNING)
744        }
745
746        #[test]
747        fn sleeping() {
748            test!(super::SLEEPING)
749        }
750    }
751}
752
753pub mod animals {
754    /// Japanese believe that cats are insanely cute creatures. This explains a variety of anime and manga fetishes: cat ears and tail, saying "nyaa~" (nyaa - "meow" in Japanese) and other kawaii things. Therefore, it's not a surprise that in kaomoji main animals are cats. So, if you want your emoticon to become a nice kitty, use = = for its mustache and ^ ^ for the ears.
755    pub const CAT: [&[u8]; 28] = [
756        b"(=^\xEF\xBD\xA5\xCF\x89\xEF\xBD\xA5^=)",
757        b"(=^\xEF\xBD\xA5\xEF\xBD\xAA\xEF\xBD\xA5^=)",
758        b"(=\xE2\x91\xA0\xCF\x89\xE2\x91\xA0=)",
759        b"( =\xCF\x89=)..nyaa",
760        b"(= ; \xEF\xBD\xAA ; =)",
761        b"(=`\xCF\x89\xC2\xB4=)",
762        b"(=^\xE2\x80\xA5^=)",
763        b"( =\xE3\x83\x8E\xCF\x89\xE3\x83\xBD=)",
764        b"(=\xE2\x8C\x92\xE2\x80\xBF\xE2\x80\xBF\xE2\x8C\x92=)",
765        b"(=^ \xE2\x97\xA1 ^=)",
766        b"(=^-\xCF\x89-^=)",
767        b"\xE3\x83\xBE(=`\xCF\x89\xC2\xB4=)\xE3\x83\x8E\xE2\x80\x9D",
768        b"(\xEF\xBC\xBE\xE2\x80\xA2 \xCF\x89 \xE2\x80\xA2\xEF\xBC\xBE)",
769        b"(/ =\xCF\x89=)/",
770        b"\xE0\xB8\x85(\xE2\x80\xA2\xE3\x85\x85\xE2\x80\xA2\xE2\x9D\x80)\xE0\xB8\x85",
771        b"\xE0\xB8\x85(\xE2\x80\xA2 \xC9\xAA \xE2\x80\xA2)\xE0\xB8\x85",
772        b"\xE0\xAC\xB2(\xE2\x93\x9B \xCF\x89 \xE2\x93\x9B)\xE0\xAC\xB2",
773        b"(^=\xE2\x97\x95\xE1\xB4\xA5\xE2\x97\x95=^)",
774        b"( =\xCF\x89= )",
775        b"\xE0\xAC\xB2(\xE2\x93\x9B \xCF\x89 \xE2\x93\x9B)\xE0\xAC\xB2",
776        b"(^=\xE2\x97\x95\xE1\xB4\xA5\xE2\x97\x95=^)",
777        b"( =\xCF\x89= )",
778        b"(^\xCB\xB5\xE2\x97\x95\xCF\x89\xE2\x97\x95\xCB\xB5^)",
779        b"(^\xE2\x97\x94\xE1\xB4\xA5\xE2\x97\x94^)",
780        b"(^\xE2\x97\x95\xE1\xB4\xA5\xE2\x97\x95^)",
781        b"\xE0\xB8\x95(=\xCF\x89=)\xE0\xB8\x95",
782        b"( \xCE\xA6 \xCF\x89 \xCE\xA6 )",
783        b"\xE0\xB8\x85(^\xE2\x97\x95\xE1\xB4\xA5\xE2\x97\x95^)\xE0\xB8\x85",
784    ];
785
786    /// Japanese bear emoticons are easy to identify by their special snout (エ) or ears ʕ ʔ.
787    pub const BEAR: [&[u8]; 16] = [
788        b"( \xC2\xB4(\xEF\xBD\xB4)\xCB\x8B )",
789        b"(*\xEF\xBF\xA3(\xEF\xBD\xB4)\xEF\xBF\xA3*)",
790        b"\xE3\x83\xBD(\xEF\xBF\xA3(\xEF\xBD\xB4)\xEF\xBF\xA3)\xEF\xBE\x89",
791        b"(\xEF\xBC\x8F\xEF\xBF\xA3(\xEF\xBD\xB4)\xEF\xBF\xA3)\xEF\xBC\x8F",
792        b"(\xEF\xBF\xA3(\xEF\xBD\xB4)\xEF\xBF\xA3)",
793        b"\xE3\x83\xBD( \xCB\x8B(\xEF\xBD\xB4)\xC2\xB4 )\xEF\xBE\x89",
794        b"\xE2\x8A\x82(\xEF\xBF\xA3(\xEF\xBD\xB4)\xEF\xBF\xA3)\xE2\x8A\x83",
795        b"(\xEF\xBC\x8F(\xEF\xBD\xB4)\xEF\xBC\xBC)",
796        b"\xE2\x8A\x82(\xC2\xB4(\xE3\x82\xA7)\xCB\x8B)\xE2\x8A\x83",
797        b"(/-(\xEF\xBD\xB4)-\xEF\xBC\xBC)",
798        b"(/\xC2\xB0(\xEF\xBD\xB4)\xC2\xB0)/",
799        b"\xCA\x95 \xE1\xB5\x94\xE1\xB4\xA5\xE1\xB5\x94 \xCA\x94",
800        b"\xCA\x95 \xE2\x80\xA2\xE1\xB4\xA5\xE2\x80\xA2 \xCA\x94",
801        b"\xCA\x95 \xE2\x80\xA2\xCC\x80 \xCF\x89 \xE2\x80\xA2\xCC\x81 \xCA\x94",
802        b"\xCA\x95 \xE2\x80\xA2\xCC\x80 o \xE2\x80\xA2\xCC\x81 \xCA\x94",
803        b"\xCA\x95\xE0\xB2\xA0\xE1\xB4\xA5\xE0\xB2\xA0\xCA\x94",
804    ];
805
806    /// The secret of dog emoticons is in the ears ∪ ∪. Use these characters instead of brackets.
807    pub const DOG: [&[u8]; 9] = [
808        b"\xE2\x88\xAA\xEF\xBC\xBE\xE3\x82\xA7\xEF\xBC\xBE\xE2\x88\xAA",
809        b"\xE2\x88\xAA\xEF\xBD\xA5\xCF\x89\xEF\xBD\xA5\xE2\x88\xAA",
810        b"\xE2\x88\xAA\xEF\xBF\xA3-\xEF\xBF\xA3\xE2\x88\xAA",
811        b"\xE2\x88\xAA\xEF\xBD\xA5\xEF\xBD\xAA\xEF\xBD\xA5\xE2\x88\xAA",
812        b"\xEF\xBC\xB5^\xE7\x9A\xBF^\xEF\xBC\xB5",
813        b"\xEF\xBC\xB5\xEF\xBC\xB4\xEF\xBD\xAA\xEF\xBC\xB4\xEF\xBC\xB5",
814        b"U^\xEF\xBD\xAA^U",
815        b"V\xE2\x97\x8F\xE1\xB4\xA5\xE2\x97\x8FV",
816        b"U\xE3\x83\xBB\xE1\xB4\xA5\xE3\x83\xBBU",
817    ];
818
819    /// It’s not a secret that rabbits are extremely cute animals. And emoticons are able to make them even cuter. You can use x for your rabbit’s face and slashes for its ears.
820    pub const RABBIT: [&[u8]; 8] = [
821        b"\xEF\xBC\x8F(\xE2\x89\xA7 x \xE2\x89\xA6)\xEF\xBC\xBC",
822        b"\xEF\xBC\x8F(\xEF\xBD\xA5 \xC3\x97 \xEF\xBD\xA5)\xEF\xBC\xBC",
823        b"\xEF\xBC\x8F(=\xC2\xB4x`=)\xEF\xBC\xBC",
824        b"\xEF\xBC\x8F(^ x ^)\xEF\xBC\xBC",
825        b"\xEF\xBC\x8F(=\xEF\xBD\xA5 x \xEF\xBD\xA5=)\xEF\xBC\xBC",
826        b"\xEF\xBC\x8F(^ \xC3\x97 ^)\xEF\xBC\xBC",
827        b"\xEF\xBC\x8F(\xEF\xBC\x9E\xC3\x97\xEF\xBC\x9C)\xEF\xBC\xBC",
828        b"\xEF\xBC\x8F(\xCB\x83\xE1\x86\xBA\xCB\x82)\xEF\xBC\xBC",
829    ];
830
831    /// You can use (оо), (OO) or (ω) for a pig nose. Add it to your emoticon and you'll get a funny cute pig.
832    pub const PIG: [&[u8]; 8] = [
833        b"( \xC2\xB4(00)\xCB\x8B )",
834        b"(\xEF\xBF\xA3(\xCF\x89)\xEF\xBF\xA3)",
835        b"\xE3\x83\xBD( \xCB\x8B(00)\xC2\xB4 )\xE3\x83\x8E",
836        b"( \xC2\xB4(oo)\xCB\x8B )",
837        b"\xEF\xBC\xBC(\xEF\xBF\xA3(oo)\xEF\xBF\xA3)\xEF\xBC\x8F",
838        b"\xEF\xBD\xA1\xEF\xBE\x9F(\xEF\xBE\x9F\xC2\xB4(00)`\xEF\xBE\x9F)\xEF\xBE\x9F\xEF\xBD\xA1",
839        b"(\xEF\xBF\xA3(00)\xEF\xBF\xA3)",
840        b"(\xCB\x86(oo)\xCB\x86)",
841    ];
842
843    /// For bird japanese emoticons and their mouths (beaks) you can use such characters as Θ or θ. This is the main idea.
844    pub const BIRD: [&[u8]; 9] = [
845        b"(\xEF\xBF\xA3\xCE\x98\xEF\xBF\xA3)",
846        b"(`\xEF\xBD\xA5\xCE\x98\xEF\xBD\xA5\xC2\xB4)",
847        b"( \xCB\x8B \xCE\x98 \xC2\xB4 )",
848        b"(\xE2\x97\x89\xCE\x98\xE2\x97\x89)",
849        b"\xEF\xBC\xBC( \xCB\x8B \xCE\x98 \xC2\xB4 )\xEF\xBC\x8F",
850        b"(\xEF\xBD\xA5\xCE\xB8\xEF\xBD\xA5)",
851        b"(\xE3\x83\xBB\xCE\x98\xE3\x83\xBB)",
852        b"\xE3\x83\xBE(\xEF\xBF\xA3\xE2\x97\x87\xEF\xBF\xA3)\xE3\x83\x8E\xE3\x80\x83",
853        b"(\xEF\xBD\xA5\xCE\x98\xEF\xBD\xA5)",
854    ];
855
856    /// Fish and seafood is an inevitable part of Japanese life. That's why fish and sea creatures emoticons are quite popular too. You can use << or 彡 for a tail, and )) for the gills.
857    pub const FISH: [&[u8]; 7] = [
858        b"(\xC2\xB0)#))<<",
859        b"<\xE3\x83\xBB )))><<",
860        b"\xCE\xB6\xC2\xB0)))\xE5\xBD\xA1",
861        b">\xC2\xB0))))\xE5\xBD\xA1",
862        b"(\xC2\xB0))<<",
863        b">^)))<\xEF\xBD\x9E\xEF\xBD\x9E",
864        b"\xE2\x89\xA7( \xC2\xB0 \xC2\xB0 )\xE2\x89\xA6",
865    ];
866
867    /// For spider emoticons use characters /\╱\╮╭╲ for the legs and try to add a few pairs of eyes.
868    pub const SPIDER: [&[u8]; 7] = [
869        b"/\xE2\x95\xB2/\\\xE2\x95\xAD(\xE0\xB0\xA0\xE0\xB0\xA0\xE7\x9B\x8A\xE0\xB0\xA0\xE0\xB0\xA0)\xE2\x95\xAE/\\\xE2\x95\xB1\\",
870        b"/\xE2\x95\xB2/\\\xE2\x95\xAD(\xE0\xB2\xB0\xE0\xB2\xB0\xE2\x8C\x93\xE0\xB2\xB0\xE0\xB2\xB0)\xE2\x95\xAE/\\\xE2\x95\xB1\\",
871        b"/\xE2\x95\xB2/\\\xE2\x95\xAD\xE0\xBC\xBC \xC2\xBA\xC2\xBA\xD9\x84\xCD\x9F\xC2\xBA\xC2\xBA \xE0\xBC\xBD\xE2\x95\xAE/\\\xE2\x95\xB1\\",
872        b"/\xE2\x95\xB2/\\\xE2\x95\xAD( \xCD\xA1\xC2\xB0\xCD\xA1\xC2\xB0 \xCD\x9C\xCA\x96 \xCD\xA1\xC2\xB0\xCD\xA1\xC2\xB0)\xE2\x95\xAE/\\\xE2\x95\xB1\\",
873        b"/\xE2\x95\xB2/\\\xE2\x95\xAD[ \xE1\xB4\xBC\xE1\xB4\xBC \xE0\xB1\xAA \xE1\xB4\xBC\xE1\xB4\xBC]\xE2\x95\xAE/\\\xE2\x95\xB1\\",
874        b"/\xE2\x95\xB2/\\( \xE2\x80\xA2\xCC\x80 \xCF\x89 \xE2\x80\xA2\xCC\x81 )/\\\xE2\x95\xB1\\",
875        b"/\xE2\x95\xB2/\\\xE2\x95\xAD[\xE2\x98\x89\xEF\xB9\x8F\xE2\x98\x89]\xE2\x95\xAE/\\\xE2\x95\xB1\\",
876    ];
877
878    #[cfg(test)]
879    mod tests {
880        #[test]
881        fn cat() {
882            test!(super::CAT)
883        }
884
885        #[test]
886        fn bear() {
887            test!(super::BEAR)
888        }
889
890        #[test]
891        fn dog() {
892            test!(super::DOG)
893        }
894
895        #[test]
896        fn rabbit() {
897            test!(super::RABBIT)
898        }
899
900        #[test]
901        fn pig() {
902            test!(super::PIG)
903        }
904
905        #[test]
906        fn bird() {
907            test!(super::BIRD)
908        }
909
910        #[test]
911        fn fish() {
912            test!(super::FISH)
913        }
914
915        #[test]
916        fn spider() {
917            test!(super::SPIDER)
918        }
919    }
920}
921
922pub mod other_types {
923    /// If you want to describe friends and friendship, the best way is to make your Japanese emoticons holding each others hands. You can use 人, メ, 八 and 爻. Although, there are other suitable characters. You can try to find them.
924    pub const FRIENDS: [&[u8]; 23] = [
925        b"\xE3\x83\xBE(\xE3\x83\xBB\xCF\x89\xE3\x83\xBB)\xE3\x83\xA1(\xE3\x83\xBB\xCF\x89\xE3\x83\xBB)\xE3\x83\x8E",
926        b"\xE3\x83\xBD(\xE2\x88\x80\xC2\xB0 )\xE4\xBA\xBA( \xC2\xB0\xE2\x88\x80)\xE3\x83\x8E",
927        b"\xE3\x83\xBD( \xE2\x8C\x92o\xE2\x8C\x92)\xE4\xBA\xBA(\xE2\x8C\x92-\xE2\x8C\x92 )\xEF\xBE\x89",
928        b"(*^\xCF\x89^)\xE5\x85\xAB(\xE2\x8C\x92\xE2\x96\xBD\xE2\x8C\x92)\xE5\x85\xAB(-\xE2\x80\xBF\xE2\x80\xBF- )\xE3\x83\xBD",
929        b"\xEF\xBC\xBC(\xEF\xBC\xBE\xE2\x88\x80\xEF\xBC\xBE)\xE3\x83\xA1(\xEF\xBC\xBE\xE2\x88\x80\xEF\xBC\xBE)\xE3\x83\x8E",
930        b"\xE3\x83\xBE(\xEF\xBF\xA3\xE3\x83\xBC\xEF\xBF\xA3(\xE2\x89\xA7\xCF\x89\xE2\x89\xA6*)\xE3\x82\x9D",
931        b"\xE3\x83\xBD( \xE2\x8C\x92\xCF\x89\xE2\x8C\x92)\xE4\xBA\xBA(=^\xE2\x80\xA5^= )\xEF\xBE\x89",
932        b"\xE3\x83\xBD(\xE2\x89\xA7\xE2\x97\xA1\xE2\x89\xA6)\xE5\x85\xAB(o^ ^o)\xE3\x83\x8E",
933        b"(*\xE3\x83\xBB\xE2\x88\x80\xE3\x83\xBB)\xE7\x88\xBB(\xE3\x83\xBB\xE2\x88\x80\xE3\x83\xBB*)",
934        b"\xEF\xBD\xA1*:\xE2\x98\x86(\xE3\x83\xBB\xCF\x89\xE3\x83\xBB\xE4\xBA\xBA\xE3\x83\xBB\xCF\x89\xE3\x83\xBB)\xEF\xBD\xA1:\xE3\x82\x9C\xE2\x98\x86\xEF\xBD\xA1",
935        b"o(^^o)(o^^o)(o^^o)(o^^)o",
936        b"(((\xEF\xBF\xA3(\xEF\xBF\xA3(\xEF\xBF\xA3\xE2\x96\xBD\xEF\xBF\xA3)\xEF\xBF\xA3)\xEF\xBF\xA3)))",
937        b"(\xC2\xB0(\xC2\xB0\xCF\x89(\xC2\xB0\xCF\x89\xC2\xB0(\xE2\x98\x86\xCF\x89\xE2\x98\x86)\xC2\xB0\xCF\x89\xC2\xB0)\xCF\x89\xC2\xB0)\xC2\xB0)",
938        b"\xE3\x83\xBE(\xE3\x83\xBB\xCF\x89\xE3\x83\xBB`)\xE3\x83\x8E\xE3\x83\xBE(\xC2\xB4\xE3\x83\xBB\xCF\x89\xE3\x83\xBB)\xE3\x83\x8E\xE3\x82\x9B",
939        b"\xCE\xA8( `\xE2\x88\x80)(\xE2\x88\x80\xC2\xB4 )\xCE\xA8",
940        b"(\xE3\x81\xA3\xCB\x98\xE2\x96\xBD\xCB\x98)(\xCB\x98\xE2\x96\xBD\xCB\x98)\xCB\x98\xE2\x96\xBD\xCB\x98\xCF\x82)",
941        b"(((*\xC2\xB0\xE2\x96\xBD\xC2\xB0*)\xE5\x85\xAB(*\xC2\xB0\xE2\x96\xBD\xC2\xB0*)))",
942        b"\xE2\x98\x86\xE3\x83\xBE(*\xC2\xB4\xE3\x83\xBB\xE2\x88\x80\xE3\x83\xBB)\xEF\xBE\x89\xE3\x83\xBE(\xE3\x83\xBB\xE2\x88\x80\xE3\x83\xBB`*)\xEF\xBE\x89\xE2\x98\x86",
943        b"(*\xEF\xBC\xBE\xCF\x89\xEF\xBC\xBE)\xE4\xBA\xBA(\xEF\xBC\xBE\xCF\x89\xEF\xBC\xBE*)",
944        b"\xD9\xA9(\xE0\xB9\x91\xEF\xBD\xA5\xE0\xB8\xB4\xE1\xB4\x97\xEF\xBD\xA5\xE0\xB8\xB4)\xDB\xB6\xD9\xA9(\xEF\xBD\xA5\xE0\xB8\xB4\xE1\xB4\x97\xEF\xBD\xA5\xE0\xB8\xB4\xE0\xB9\x91)\xDB\xB6",
945        b"(\xE2\x98\x9E\xC2\xB0\xE3\x83\xAE\xC2\xB0)\xE2\x98\x9E \xE2\x98\x9C(\xC2\xB0\xE3\x83\xAE\xC2\xB0\xE2\x98\x9C)",
946        b"\xEF\xBC\xBC(\xE2\x96\xBD\xEF\xBF\xA3 \\ (\xEF\xBF\xA3\xE2\x96\xBD\xEF\xBF\xA3) / \xEF\xBF\xA3\xE2\x96\xBD)\xEF\xBC\x8F",
947        b"\\( \xCB\x99\xE2\x96\xBF\xCB\x99 )/\\( \xCB\x99\xE2\x96\xBF\xCB\x99 )/",
948    ];
949
950    /// The concept of "enemy" here is used in a joking manner. Just try to describe how your emoticon kicks his opponent, or anything like that. You can use special effects like ☆, ミ, 彡 and Σ for emphasis. You can also use x x for the eyes of unconscious emoticons. All the rest is your creative approach.
951    pub const ENEMIES: [&[u8]; 24] = [
952        b"\xE3\x83\xBD( \xEF\xBD\xA5\xE2\x88\x80\xEF\xBD\xA5)\xEF\xBE\x89_\xCE\xB8\xE5\xBD\xA1\xE2\x98\x86\xCE\xA3(\xE3\x83\x8E `\xD0\x94\xC2\xB4)\xE3\x83\x8E",
953        b"(*\xC2\xB4\xE2\x88\x87`)\xE2\x94\x8C\xCE\xB8\xE2\x98\x86(\xEF\xBE\x89>_<)\xEF\xBE\x89",
954        b"( \xEF\xBF\xA3\xCF\x89\xEF\xBF\xA3)\xE3\x83\x8E\xEF\xBE\x9E\xE2\x8C\x92\xE2\x98\x86\xEF\xBE\x90(o _ _)o",
955        b"(*`0\xC2\xB4)\xCE\xB8\xE2\x98\x86(\xE3\x83\xA1\xC2\xB0\xE7\x9A\xBF\xC2\xB0)\xEF\xBE\x89",
956        b"(o\xC2\xAC\xE2\x80\xBF\xC2\xACo )...\xE2\x98\x86\xEF\xBE\x90(*x_x)",
957        b"(\xE2\x95\xAC\xEF\xBF\xA3\xE7\x9A\xBF\xEF\xBF\xA3)=\xE2\x97\x8B\xEF\xBC\x83(\xEF\xBF\xA3#)\xEF\xBC\x93\xEF\xBF\xA3)",
958        b"(; -_-)\xE2\x80\x95\xE2\x80\x95\xE2\x80\x95\xE2\x80\x95\xE2\x80\x95\xE2\x80\x95C<\xE2\x80\x95_-)",
959        b"\xEF\xBC\x9C( \xEF\xBF\xA3\xEF\xB8\xBF\xEF\xBF\xA3)\xEF\xB8\xB5\xCE\xB8\xEF\xB8\xB5\xCE\xB8\xEF\xB8\xB5\xE2\x98\x86(\xEF\xBC\x9E\xE5\x8F\xA3\xEF\xBC\x9C\xEF\xBC\x8D)",
960        b"(\xEF\xBF\xA3\xCE\xB5(#\xEF\xBF\xA3)\xE2\x98\x86\xE2\x95\xB0\xE2\x95\xAEo(\xEF\xBF\xA3\xE2\x96\xBD\xEF\xBF\xA3///)",
961        b"\xE3\x83\xBD(>_<\xE3\x83\xBD) \xE2\x80\x95\xE2\x8A\x82|=0\xE3\x83\x98(^\xE2\x80\xBF^ )",
962        b"\xE3\x83\x98(>_<\xE3\x83\x98) \xEF\xBF\xA2o(\xEF\xBF\xA3\xE2\x80\xBF\xEF\xBF\xA3\xEF\xBE\x92)",
963        b",,((( \xEF\xBF\xA3\xE2\x96\xA1)_\xEF\xBC\x8F \xEF\xBC\xBC_(\xE2\x97\x8B\xEF\xBF\xA3 ))),,",
964        b"(\xD2\x82` \xEF\xBE\x9B \xC2\xB4)\xEF\xB8\xBB\xE3\x83\x87\xE2\x95\x90\xE4\xB8\x80 \xEF\xBC\xBC(\xC2\xBA \xE2\x96\xA1 \xC2\xBA l|l)/",
965        b"(\xE2\x95\xAF\xC2\xB0\xD0\x94\xC2\xB0)\xE2\x95\xAF\xEF\xB8\xB5 /(.\xE2\x96\xA1 . \xEF\xBC\xBC)",
966        b"(\xC2\xAC_\xC2\xAC'')\xD4\x85(\xEF\xBF\xA3\xCE\xB5\xEF\xBF\xA3\xD4\x85)",
967        b"/( .\xE2\x96\xA1.)\xEF\xBC\xBC \xEF\xB8\xB5\xE2\x95\xB0(\xC2\xB0\xE7\x9B\x8A\xC2\xB0)\xE2\x95\xAF\xEF\xB8\xB5 /(.\xE2\x96\xA1. /)",
968        b"(\xEF\xBE\x89-.-)\xEF\xBE\x89\xE2\x80\xA6.((((((((((((\xE2\x97\x8F~* ( >_<)",
969        b"!!(\xEF\xBE\x92\xEF\xBF\xA3 \xEF\xBF\xA3)_\xCE\xB8\xE2\x98\x86\xC2\xB00\xC2\xB0)/",
970        b"(`\xE2\x8C\x92*)O-(`\xE2\x8C\x92\xC2\xB4Q)",
971        b"(((\xE0\xB8\x87\xE2\x80\x99\xCF\x89\xE2\x80\x99)\xD9\x88\xE4\xB8\x89 \xE0\xB8\x87\xE2\x80\x99\xCF\x89\xE2\x80\x99)\xDA\xA1\xE2\x89\xA1\xE3\x80\x80\xE2\x98\x86\xE2\x8C\x92\xEF\xBE\x90((x_x)",
972        b"(\xE0\xB8\x87\xE0\xB2\xA0_\xE0\xB2\xA0)\xE0\xB8\x87\xE3\x80\x80\xCF\x83( \xE2\x80\xA2\xCC\x80 \xCF\x89 \xE2\x80\xA2\xCC\x81 \xCF\x83)",
973        b"(\xE3\x81\xA3\xE2\x80\xA2\xEF\xB9\x8F\xE2\x80\xA2)\xE3\x81\xA3 \xE2\x9C\xB4==\xE2\x89\xA1\xEB\x88\x88\xD9\xA9(`\xE7\x9A\xBF\xC2\xB4\xD2\x82)\xE0\xB8\x87",
974        b"(\xEF\xBD\xA2\xE2\x80\xA2 \xCF\x89 \xE2\x80\xA2)\xEF\xBD\xA2 (\xE2\x8C\x92\xCF\x89\xE2\x8C\x92`)",
975        b"( \xC2\xB0\xE1\xB4\x97\xC2\xB0)~\xC3\xB0 (/\xE2\x9D\x9Bo\xE2\x9D\x9B\\)",
976    ];
977
978    /// Rifle ︻デ═一, sniper rifle ︻┻┳══━一, shotgun ︻┳═一, minigun ✴==≡눈, gun ¬, laser ・・・--------☆, chain ○∞∞∞∞, bow D・・・・・------ →, bomb (((((((((●~*, syringe ―⊂|=0, pepper spray 占~~~~~, jo-jo ~~~~~~~~~~◎, boomerang (( く ((へ, spear ―――→, grabber ――――C, sword _/ or ¤=[]:::::>, boxing gloves QQ.
979    pub const WEAPONS: [&[u8]; 18] = [
980        b"( \xE3\x83\xBB\xE2\x88\x80\xE3\x83\xBB)\xE3\x83\xBB\xE3\x83\xBB\xE3\x83\xBB--------\xE2\x98\x86",
981        b"(/-_\xE3\x83\xBB)/D\xE3\x83\xBB\xE3\x83\xBB\xE3\x83\xBB\xE3\x83\xBB\xE3\x83\xBB------ \xE2\x86\x92",
982        b"(^\xCF\x89^)\xE3\x83\x8E\xEF\xBE\x9E(((((((((\xE2\x97\x8F\xEF\xBD\x9E*",
983        b"( -\xCF\x89-)\xEF\xBC\x8F\xE5\x8D\xA0~~~~~",
984        b"(/\xE3\x83\xBB\xE3\x83\xBB)\xE3\x83\x8E\xE3\x80\x80\xE3\x80\x80 (( \xE3\x81\x8F ((\xE3\x81\xB8",
985        b"\xE2\x80\x95\xE2\x8A\x82|=0\xE3\x83\x98(^^ )",
986        b"\xE2\x97\x8B\xE2\x88\x9E\xE2\x88\x9E\xE2\x88\x9E\xE2\x88\x9E\xE3\x83\xBD(^\xE3\x83\xBC^ )",
987        b"(; \xE3\x83\xBB_\xE3\x83\xBB)\xE2\x80\x95\xE2\x80\x95\xE2\x80\x95\xE2\x80\x95C",
988        b"(\xE0\xB2\xA0 o \xE0\xB2\xA0)\xC2\xA4=[]:::::>",
989        b"(*\xEF\xBC\xBE\xEF\xBC\xBE)/~~~~~~~~~~\xE2\x97\x8E",
990        b"\xEF\xBF\xA2o(\xEF\xBF\xA3-\xEF\xBF\xA3\xEF\xBE\x92)",
991        b"\xE2\x80\x95(T_T)\xE2\x86\x92",
992        b"((( \xEF\xBF\xA3\xE2\x96\xA1)_\xEF\xBC\x8F",
993        b"(\xEF\xBE\x92` \xEF\xBE\x9B \xC2\xB4)\xEF\xB8\xBB\xE3\x83\x87\xE2\x95\x90\xE4\xB8\x80",
994        b"( \xC2\xB4-\xCF\x89\xEF\xBD\xA5)\xEF\xB8\xBB\xE2\x94\xBB\xE2\x94\xB3\xE2\x95\x90\xE2\x95\x90\xE2\x94\x81\xE4\xB8\x80",
995        b"(\xEF\xBE\x92\xEF\xBF\xA3\xE2\x96\xBD\xEF\xBF\xA3)\xEF\xB8\xBB\xE2\x94\xB3\xE2\x95\x90\xE4\xB8\x80",
996        b"\xE2\x9C\xB4==\xE2\x89\xA1\xEB\x88\x88\xD9\xA9(`\xE7\x9A\xBF\xC2\xB4\xD2\x82)\xE0\xB8\x87",
997        b"Q(`\xE2\x8C\x92\xC2\xB4Q)",
998    ];
999
1000    /// Japanese emoticons can depict even magic in its all diversity.
1001    pub const MAGIC: [&[u8]; 10] = [
1002        b"(\xE3\x83\x8E \xCB\x98_\xCB\x98)\xE3\x83\x8E\xE3\x80\x80\xCE\xB6|||\xCE\xB6\xE3\x80\x80\xCE\xB6|||\xCE\xB6\xE3\x80\x80\xCE\xB6|||\xCE\xB6",
1003        b"(\xEF\xBE\x89\xE2\x89\xA7\xE2\x88\x80\xE2\x89\xA6)\xEF\xBE\x89 \xE2\x80\xA5\xE2\x80\xA6\xE2\x94\x81\xE2\x94\x81\xE2\x94\x81\xE2\x98\x85",
1004        b"(\xEF\xBE\x89>\xCF\x89<)\xEF\xBE\x89 :\xEF\xBD\xA1\xEF\xBD\xA5:*:\xEF\xBD\xA5\xEF\xBE\x9F\xE2\x80\x99\xE2\x98\x85,\xEF\xBD\xA1\xEF\xBD\xA5:*:\xEF\xBD\xA5\xEF\xBE\x9F\xE2\x80\x99\xE2\x98\x86",
1005        b"(\xE3\x83\x8E\xC2\xB0\xE2\x88\x80\xC2\xB0)\xE3\x83\x8E\xE2\x8C\x92\xEF\xBD\xA5*:.\xEF\xBD\xA1. .\xEF\xBD\xA1.:*\xEF\xBD\xA5\xE3\x82\x9C\xEF\xBE\x9F\xEF\xBD\xA5*\xE2\x98\x86",
1006        b"\xE2\x95\xB0( \xCD\xA1\xC2\xB0 \xCD\x9C\xCA\x96 \xCD\xA1\xC2\xB0 )\xE3\x81\xA4\xE2\x94\x80\xE2\x94\x80\xE2\x98\x86*:\xE3\x83\xBB\xEF\xBE\x9F",
1007        b"(\xEF\xBC\x83\xEF\xBF\xA3\xE2\x96\xA1\xEF\xBF\xA3)o\xE2\x94\x81\xE2\x88\x88\xE3\x83\xBB\xE3\x83\xBB\xE2\x94\x81\xE2\x94\x81\xE2\x94\x81\xE2\x94\x81\xE2\x98\x86",
1008        b"(\xE2\x8A\x83\xEF\xBD\xA1\xE2\x80\xA2\xCC\x81\xE2\x80\xBF\xE2\x80\xA2\xCC\x80\xEF\xBD\xA1)\xE2\x8A\x83\xE2\x94\x81\xE2\x9C\xBF\xE2\x9C\xBF\xE2\x9C\xBF\xE2\x9C\xBF\xE2\x9C\xBF\xE2\x9C\xBF",
1009        b"(\xE2\x88\xA9\xE1\x84\x91_\xE1\x84\x91)\xE2\x8A\x83\xE2\x94\x81\xE2\x98\x86\xEF\xBE\x9F*\xEF\xBD\xA5\xEF\xBD\xA1*\xEF\xBD\xA5:\xE2\x89\xA1( \xCE\xB5:)",
1010        b"(/\xEF\xBF\xA3\xE3\x83\xBC\xEF\xBF\xA3)/~~\xE2\x98\x86\xE2\x80\x99.\xEF\xBD\xA5.\xEF\xBD\xA5:\xE2\x98\x85\xE2\x80\x99.\xEF\xBD\xA5.\xEF\xBD\xA5:\xE2\x98\x86",
1011        b"(\xE2\x88\xA9` \xEF\xBE\x9B \xC2\xB4)\xE2\x8A\x83\xE2\x94\x81\xE7\x82\x8E\xE7\x82\x8E\xE7\x82\x8E\xE7\x82\x8E\xE7\x82\x8E",
1012    ];
1013
1014    /// Japanese like to drink very much! You can use 旦, 口, 且 and similar characters (for example, simply []) for this purpose. And for hot drinks (tea, coffee) just add ~~ (steam) characters. There is also a great variety of eating emoticons (see examples in the table below).
1015    pub const FOOD: [&[u8]; 18] = [
1016        b"(\xE3\x81\xA3\xCB\x98\xDA\xA1\xCB\x98\xCF\x82)",
1017        b"( o\xCB\x98\xE2\x97\xA1\xCB\x98o) \xE2\x94\x8Ciii\xE2\x94\x90",
1018        b"(\xE3\x80\x80\xE2\x80\x99\xCF\x89\xE2\x80\x99)\xE6\x97\xA6~~",
1019        b"( \xCB\x98\xE2\x96\xBD\xCB\x98)\xE3\x81\xA3\xE2\x99\xA8",
1020        b"\xE2\x99\xA8o(>_<)o\xE2\x99\xA8",
1021        b"( \xE3\x83\xBB\xCF\x89\xE3\x83\xBB)o-{{[\xE3\x80\x83]}}",
1022        b"(\xE3\x80\x80\xE3\x83\xBB\xCF\x89\xE3\x83\xBB)\xE2\x8A\x83-[\xE4\xBA\x8C\xE4\xBA\x8C]",
1023        b"( \xE3\x83\xBB\xE3\x83\xBB)\xE3\x81\xA4\xE2\x80\x95{}@{}@{}-",
1024        b"( \xE3\x83\xBB\xE3\x83\xBB)\xE3\x81\xA4-\xE2\x97\x8F\xE2\x97\x8F\xE2\x97\x8F",
1025        b"(*\xC2\xB4\xE3\x83\xBC`)\xE6\x97\xA6 \xE6\x97\xA6(\xEF\xBF\xA3\xCF\x89\xEF\xBF\xA3*)",
1026        b"(*\xC2\xB4\xD0\xB7`)\xE5\x8F\xA3\xEF\xBE\x9F\xEF\xBD\xA1\xEF\xBE\x9F\xE5\x8F\xA3(\xE3\x83\xBB\xE2\x88\x80\xE3\x83\xBB )",
1027        b"( o^ ^o)\xE4\xB8\x94 \xE4\xB8\x94(\xC2\xB4\xCF\x89`*)",
1028        b"( \xEF\xBF\xA3\xE2\x96\xBD\xEF\xBF\xA3)[] [](\xE2\x89\xA7\xE2\x96\xBD\xE2\x89\xA6 )",
1029        b"( *^^)o\xE2\x88\x80*\xE2\x88\x80o(^^* )",
1030        b"( ^^)_\xE6\x97\xA6~~\xE3\x80\x80 ~~U_(^^ )",
1031        b"(*\xEF\xBF\xA3\xE2\x96\xBD\xEF\xBF\xA3)\xE6\x97\xA6 \xE4\xB8\x94(\xC2\xB4\xE2\x88\x80`*)",
1032        b"-\xE2\x97\x8F\xE2\x97\x8F\xE2\x97\x8F-\xEF\xBD\x83(\xE3\x83\xBB\xE3\x83\xBB )",
1033        b"( \xE3\x83\xBB\xE3\x83\xBB)\xE3\x81\xA4\xE2\x80\x95\xE2\x97\x8F\xE2\x97\x8B\xE2\x97\x8E-",
1034    ];
1035
1036    /// Japanese emoticons can also describe musical aspects of life (singing, dancing, listening to music, etc.). You can just add ♪ character to your kaomoji or change its hands position (if you want to make it dance).
1037    pub const MUSIC: [&[u8]; 32] = [
1038        b"\xE3\x83\xBE(\xC2\xB4\xE3\x80\x87`)\xEF\xBE\x89\xE2\x99\xAA\xE2\x99\xAA\xE2\x99\xAA",
1039        b"\xE3\x83\x98(\xEF\xBF\xA3\xCF\x89\xEF\xBF\xA3\xE3\x83\x98)",
1040        b"(\xE3\x80\x9C\xEF\xBF\xA3\xE2\x96\xBD\xEF\xBF\xA3)\xE3\x80\x9C",
1041        b"\xE3\x80\x9C(\xEF\xBF\xA3\xE2\x96\xBD\xEF\xBF\xA3\xE3\x80\x9C)",
1042        b"\xE3\x83\xBD(o\xC2\xB4\xE2\x88\x80`)\xEF\xBE\x89\xE2\x99\xAA\xE2\x99\xAC",
1043        b"(\xEF\xBE\x89\xE2\x89\xA7\xE2\x88\x80\xE2\x89\xA6)\xEF\xBE\x89",
1044        b"\xE2\x99\xAA\xE3\x83\xBD(^^\xE3\x83\xBD)\xE2\x99\xAA",
1045        b"\xE2\x99\xAA(/_ _ )/\xE2\x99\xAA",
1046        b"\xE2\x99\xAA\xE2\x99\xAC((d\xE2\x8C\x92\xCF\x89\xE2\x8C\x92b))\xE2\x99\xAC\xE2\x99\xAA",
1047        b"\xE2\x94\x94(\xEF\xBF\xA3-\xEF\xBF\xA3\xE2\x94\x94))",
1048        b"((\xE2\x94\x98\xEF\xBF\xA3\xCF\x89\xEF\xBF\xA3)\xE2\x94\x98",
1049        b"\xE2\x88\x9A(\xEF\xBF\xA3\xE2\x80\xA5\xEF\xBF\xA3\xE2\x88\x9A)",
1050        b"\xE2\x94\x94(\xEF\xBC\xBE\xEF\xBC\xBE)\xE2\x94\x90",
1051        b"\xE2\x94\x8C(\xEF\xBC\xBE\xEF\xBC\xBE)\xE2\x94\x98",
1052        b"\xEF\xBC\xBC(\xEF\xBF\xA3\xE2\x96\xBD\xEF\xBF\xA3)\xEF\xBC\xBC",
1053        b"\xEF\xBC\x8F(\xEF\xBF\xA3\xE2\x96\xBD\xEF\xBF\xA3)\xEF\xBC\x8F",
1054        b"(\xEF\xBF\xA3\xE2\x96\xBD\xEF\xBF\xA3)/\xE2\x99\xAB\xE2\x80\xA2*\xC2\xA8*\xE2\x80\xA2.\xC2\xB8\xC2\xB8\xE2\x99\xAA",
1055        b"(^_^\xE2\x99\xAA)",
1056        b"(~\xCB\x98\xE2\x96\xBD\xCB\x98)~",
1057        b"~(\xCB\x98\xE2\x96\xBD\xCB\x98~)",
1058        b"\xE3\x83\xBE(\xE2\x8C\x90\xE2\x96\xA0_\xE2\x96\xA0)\xE3\x83\x8E\xE2\x99\xAA",
1059        b"(\xE3\x80\x9C\xEF\xBF\xA3\xE2\x96\xB3\xEF\xBF\xA3)\xE3\x80\x9C",
1060        b"(~\xE2\x80\xBE\xE2\x96\xBD\xE2\x80\xBE)~",
1061        b"~(\xCB\x98\xE2\x96\xBD\xCB\x98)~",
1062        b"\xE4\xB9\x81( \xE2\x80\xA2 \xCF\x89 \xE2\x80\xA2\xE4\xB9\x81)",
1063        b"(\xEF\xBD\xA2\xE2\x80\xA2 \xCF\x89 \xE2\x80\xA2)\xEF\xBD\xA2",
1064        b"\xE2\x81\xBD\xE2\x81\xBD\xE2\x97\x9D( \xE2\x80\xA2 \xCF\x89 \xE2\x80\xA2 )\xE2\x97\x9C\xE2\x81\xBE\xE2\x81\xBE",
1065        b"\xE2\x9C\xBA\xE2\x97\x9F( \xE2\x80\xA2 \xCF\x89 \xE2\x80\xA2 )\xE2\x97\x9E\xE2\x9C\xBA",
1066        b"\xE2\x99\xAC\xE2\x99\xAB\xE2\x99\xAA\xE2\x97\x96(\xE2\x97\x8F o \xE2\x97\x8F)\xE2\x97\x97\xE2\x99\xAA\xE2\x99\xAB\xE2\x99\xAC",
1067        b"( \xCB\x98 \xC9\x9C\xCB\x98) \xE2\x99\xAC\xE2\x99\xAA\xE2\x99\xAB",
1068        b"\xE2\x99\xAA\xE2\x99\xAA\xE2\x99\xAA \xE3\x83\xBD(\xCB\x87\xE2\x88\x80\xCB\x87 )\xE3\x82\x9E",
1069        b"(\xCB\x87\xE2\x96\xBD\xCB\x87)\xE3\x83\x8E\xE2\x99\xAA\xE2\x99\xAC\xE2\x99\xAB",
1070    ];
1071    /// Japanese can describe even games and sports through kaomoji. Here are a few examples: tennis, ping pong, volleyball, basketball, ball, boxing, kendo, fishing, bowling, playing video games. Try to find out what is what.
1072    pub const GAMES: [&[u8]; 10] = [
1073        b"( ^^)p_____|_o____q(^^ )",
1074        b"(\xEF\xBC\x8Fo^)/ \xC2\xB0\xE2\x8A\xA5 \xEF\xBC\xBC(^o\xEF\xBC\xBC)",
1075        b"!(;\xEF\xBE\x9Fo\xEF\xBE\x9F)o/\xEF\xBF\xA3\xEF\xBF\xA3\xEF\xBF\xA3\xEF\xBF\xA3\xEF\xBF\xA3\xEF\xBF\xA3\xEF\xBF\xA3~ >\xEF\xBE\x9F))))\xE5\xBD\xA1",
1076        b"\xE3\x83\xBD(^o^)\xCF\x81\xE2\x94\xB3\xE2\x94\xBB\xE2\x94\xB3\xC2\xB0\xCF\x83(^o^)\xE3\x83\x8E",
1077        b"(\xEF\xBC\x8F_^)\xEF\xBC\x8F\xE3\x80\x80\xE3\x80\x80\xE2\x97\x8F\xE3\x80\x80\xEF\xBC\xBC(^_\xEF\xBC\xBC)",
1078        b"\"( (\xE2\x89\xA1|\xE2\x89\xA1))_\xEF\xBC\x8F \xEF\xBC\xBC_((\xE2\x89\xA1|\xE2\x89\xA1) )\"",
1079        b"( \xE3\x83\x8E-_-)\xE3\x83\x8E\xEF\xBE\x9E_\xE2\x96\xA1 VS \xE2\x96\xA1_\xE3\x83\xBE(^-^\xE3\x83\xBD)",
1080        b"\xE3\x83\xBD(\xEF\xBC\x9B^ ^)\xE3\x83\x8E\xEF\xBE\x9E \xEF\xBC\x8E\xEF\xBC\x8E\xEF\xBC\x8E...___\xE3\x80\x87",
1081        b"(=O*_*)=O Q(*_*Q)",
1082        b"\xD0\xAE\xE3\x80\x80\xE2\x97\x8B\xE4\xB8\x89\xE3\x80\x80\xEF\xBC\xBC(\xEF\xBF\xA3^\xEF\xBF\xA3\xEF\xBC\xBC)",
1083    ];
1084
1085    /// These emoticons have human-like faces.
1086    pub const FACES: [&[u8]; 18] = [
1087        b"( \xCD\xA1\xC2\xB0 \xCD\x9C\xCA\x96 \xCD\xA1\xC2\xB0)",
1088        b"( \xCD\xA1\xC2\xB0 \xCA\x96\xCC\xAF \xCD\xA1\xC2\xB0)",
1089        b"( \xCD\xA0\xC2\xB0 \xCD\x9F\xCA\x96 \xCD\xA1\xC2\xB0)",
1090        b"( \xCD\xA1\xE1\xB5\x94 \xCD\x9C\xCA\x96 \xCD\xA1\xE1\xB5\x94)",
1091        b"( . \xE2\x80\xA2\xCC\x81 _\xCA\x96 \xE2\x80\xA2\xCC\x80 .)",
1092        b"( \xE0\xB0\xA0 \xCD\x9F\xCA\x96 \xE0\xB0\xA0)",
1093        b"( \xCD\xA1\xE0\xB2\xA0 \xCA\x96\xCC\xAF \xCD\xA1\xE0\xB2\xA0)",
1094        b"( \xE0\xB2\xA0 \xCA\x96\xCC\xAF \xE0\xB2\xA0)",
1095        b"( \xE0\xB2\xA0 \xCD\x9C\xCA\x96 \xE0\xB2\xA0)",
1096        b"( \xE0\xB2\xA5 \xCA\x96\xCC\xAF \xE0\xB2\xA5)",
1097        b"( \xCD\xA1\xE2\x80\xA2 \xCD\x9C\xCA\x96 \xCD\xA1\xE2\x80\xA2 )",
1098        b"( \xEF\xBD\xA5\xE0\xB8\xB4 \xCD\x9C\xCA\x96 \xEF\xBD\xA5\xE0\xB8\xB4)",
1099        b"( \xCD\xA1 \xCD\x9C\xCA\x96 \xCD\xA1 )",
1100        b"(\xE2\x89\x96 \xCD\x9C\xCA\x96\xE2\x89\x96)",
1101        b"(\xCA\x98 \xCA\x96\xCC\xAF \xCA\x98)",
1102        b"(\xCA\x98 \xCD\x9F\xCA\x96 \xCA\x98)",
1103        b"(\xCA\x98 \xCD\x9C\xCA\x96 \xCA\x98)",
1104        b"(;\xC2\xB4\xE0\xBC\x8E\xE0\xBA\xB6\xD9\xB9\xE0\xBC\x8E\xE0\xBA\xB6`)",
1105    ];
1106
1107    #[cfg(test)]
1108    mod tests {
1109        #[test]
1110        fn friends() {
1111            test!(super::FRIENDS)
1112        }
1113
1114        #[test]
1115        fn enemies() {
1116            test!(super::ENEMIES)
1117        }
1118
1119        #[test]
1120        fn weapons() {
1121            test!(super::WEAPONS)
1122        }
1123
1124        #[test]
1125        fn magic() {
1126            test!(super::MAGIC)
1127        }
1128
1129        #[test]
1130        fn food() {
1131            test!(super::FOOD)
1132        }
1133
1134        #[test]
1135        fn music() {
1136            test!(super::MUSIC)
1137        }
1138
1139        #[test]
1140        fn games() {
1141            test!(super::GAMES)
1142        }
1143
1144        #[test]
1145        fn faces() {
1146            test!(super::FACES)
1147        }
1148    }
1149}
1150
1151/// No specific category emoticons are added here. So each of them has special description.
1152pub mod special {
1153    pub const WAKING_UP: &[u8] = b"\xD9\xA9(\xCB\x8A\xE3\x80\x87\xCB\x8B*)\xD9\x88";
1154    pub const MILITARY_SALUTATION: &[u8] = b"(\xEF\xBF\xA3^\xEF\xBF\xA3)\xE3\x82\x9E";
1155    pub const FACE_PALM: &[u8] = b"(\xEF\xBC\x8D\xE2\x80\xB8\xE1\x83\x9A)";
1156    pub const THROWING_TABLE_IN_ANGER: &[u8] = b"(\xE2\x95\xAF\xC2\xB0\xE7\x9B\x8A\xC2\xB0)\xE2\x95\xAF\xE5\xBD\xA1\xE2\x94\xBB\xE2\x94\x81\xE2\x94\xBB";
1157    pub const TAKING_TABLE_AND_GOING_MAD: &[u8] = b"(\xE2\x95\xAE\xC2\xB0-\xC2\xB0)\xE2\x95\xAE\xE2\x94\xB3\xE2\x94\x81\xE2\x94\x81\xE2\x94\xB3 ( \xE2\x95\xAF\xC2\xB0\xE2\x96\xA1\xC2\xB0)\xE2\x95\xAF \xE2\x94\xBB\xE2\x94\x81\xE2\x94\x81\xE2\x94\xBB";
1158    pub const PUTTING_TABLE_BACK: &[u8] =
1159        b"\xE2\x94\xAC\xE2\x94\x80\xE2\x94\xAC\xE3\x83\x8E( \xC2\xBA _ \xC2\xBA\xE3\x83\x8E)";
1160    pub const SURRENDER: &[u8] = b"(oT-T)\xE5\xB0\xB8";
1161    pub const MEME_LENNY_FACE: &[u8] = b"( \xCD\xA1\xC2\xB0 \xCD\x9C\xCA\x96 \xCD\xA1\xC2\xB0)";
1162    pub const MONEY: &[u8] = b"[\xCC\xB2\xCC\x85$\xCC\xB2\xCC\x85(\xCC\xB2\xCC\x85 \xCD\xA1\xC2\xB0 \xCD\x9C\xCA\x96 \xCD\xA1\xC2\xB0\xCC\xB2\xCC\x85)\xCC\xB2\xCC\x85$\xCC\xB2\xCC\x85]";
1163    pub const MEME_LOOK_OF_DISSAPROVAL: &[u8] = b"(\xE0\xB2\xA0_\xE0\xB2\xA0)";
1164    pub const SMOKING: &[u8] = b"\xE0\xB1\xA6\xEF\xBC\x90o \xEF\xBD\xA1 (\xE2\x80\xBE\xCC\x81\xE3\x80\x82\xE2\x80\xBE\xCC\x81 )y~~";
1165    pub const HUNGRY: &[u8] = b"(\xEF\xBF\xA3\xEF\xB9\x83\xEF\xBF\xA3)";
1166    pub const ALIVE_AMONG_ZOMBIES: &[u8] = b"(x(x_(x_x(O_o)x_x)_x)x)";
1167    pub const POINTING: &[u8] = b"(\xE3\x80\x80\xEF\xBD\xA5\xCF\x89\xEF\xBD\xA5)\xE2\x98\x9E";
1168    pub const WITH_GLASSES: &[u8] = b"(\xE2\x8C\x90\xE2\x96\xA0_\xE2\x96\xA0)";
1169    pub const CUTE_FACE: &[u8] = b"(\xE2\x97\x95\xE2\x80\xBF\xE2\x97\x95\xE2\x9C\xBF)";
1170    pub const WATCHING_TV: &[u8] = b"(\xE3\x80\x80\xEF\xBF\xA3.)o-\xE3\x80\x80\xE3\x80\x80\xE3\x80\x90\xE3\x80\x80TV\xE3\x80\x80\xE3\x80\x91";
1171    pub const CATCHING_UMBRELLA_IN_THE_RAIN: &[u8] = b"\xEF\xBD\x80\xE3\x80\x81\xE3\x83\xBD\xEF\xBD\x80\xE3\x83\xBD\xEF\xBD\x80\xE3\x80\x81\xE3\x83\xBD(\xE3\x83\x8E\xEF\xBC\x9E\xEF\xBC\x9C)\xE3\x83\x8E \xEF\xBD\x80\xE3\x80\x81\xE3\x83\xBD\xEF\xBD\x80\xE2\x98\x82\xE3\x83\xBD\xEF\xBD\x80\xE3\x80\x81\xE3\x83\xBD";
1172    pub const DROWNING: &[u8] = b"\xE2\x80\xBF\xEF\xB8\xB5\xE2\x80\xBF\xEF\xB8\xB5\xE2\x80\xBF\xEF\xB8\xB5\xE2\x80\xBF\xE3\x83\xBD(\xC2\xB0\xE2\x96\xA1\xC2\xB0 )\xE3\x83\x8E\xEF\xB8\xB5\xE2\x80\xBF\xEF\xB8\xB5\xE2\x80\xBF\xEF\xB8\xB5\xE2\x80\xBF\xEF\xB8\xB5";
1173    pub const EMM_TRY_TO_FIGURE_OUT_WHAT_HES_DOING: &[u8] =
1174        b"( \xE2\x80\xA2 )( \xE2\x80\xA2 )\xD4\x85(\xE2\x89\x96\xE2\x80\xBF\xE2\x89\x96\xD4\x85)";
1175    pub const PUNISHMENT_FOR_CHEATING: &[u8] = b"( \xEF\xBC\xBE\xE2\x96\xBD\xEF\xBC\xBE)\xE3\x81\xA3\xE2\x9C\x82\xE2\x95\xB0\xE2\x8B\x83\xE2\x95\xAF";
1176    pub const CHASING_A_BUTTERYFLY: &[u8] = b"\xE3\x80\x9C\xE3\x80\x9C(\xEF\xBC\x8F\xEF\xBF\xA3\xE2\x96\xBD)\xEF\xBC\x8F\xE3\x80\x80\xE3\x80\x9C\xD1\x84";
1177    pub const ANGEL: &[u8] = b"\xE0\xAC\x98(\xE0\xA9\xAD\xCB\x8A\xE1\xB5\x95\xCB\x8B)\xE0\xA9\xAD* \xE0\xA9\x88\xE2\x9C\xA9\xE2\x80\xA7\xE2\x82\x8A\xCB\x9A";
1178    pub const ONE_MORE_ANGEL: &[u8] = b"\xE0\xAC\x98(\xE0\xA9\xAD\xCB\x8A\xEA\x92\xB3\xE2\x80\x8B\xCB\x8B)\xE0\xA9\xAD\xE2\x9C\xA7";
1179    pub const POPULAR_LYING_EMOTICON: &[u8] = b"_(:3 \xE3\x80\x8D\xE2\x88\xA0)_";
1180    pub const ANOTHER_LYING_EMOTICON: &[u8] =
1181        b"\xE2\x88\xA0( \xE1\x90\x9B \xE3\x80\x8D\xE2\x88\xA0)_";
1182
1183    #[cfg(test)]
1184    mod tests {
1185        #[test]
1186        fn special() {
1187            test_string!(0, super::WAKING_UP);
1188            test_string!(0, super::MILITARY_SALUTATION);
1189            test_string!(0, super::FACE_PALM);
1190            test_string!(0, super::THROWING_TABLE_IN_ANGER);
1191            test_string!(0, super::TAKING_TABLE_AND_GOING_MAD);
1192            test_string!(0, super::PUTTING_TABLE_BACK);
1193            test_string!(0, super::SURRENDER);
1194            test_string!(0, super::MEME_LENNY_FACE);
1195            test_string!(0, super::MONEY);
1196            test_string!(0, super::MEME_LOOK_OF_DISSAPROVAL);
1197            test_string!(0, super::SMOKING);
1198            test_string!(0, super::HUNGRY);
1199            test_string!(0, super::ALIVE_AMONG_ZOMBIES);
1200            test_string!(0, super::POINTING);
1201            test_string!(0, super::WITH_GLASSES);
1202            test_string!(0, super::CUTE_FACE);
1203            test_string!(0, super::WATCHING_TV);
1204            test_string!(0, super::CATCHING_UMBRELLA_IN_THE_RAIN);
1205            test_string!(0, super::DROWNING);
1206            test_string!(0, super::EMM_TRY_TO_FIGURE_OUT_WHAT_HES_DOING);
1207            test_string!(0, super::PUNISHMENT_FOR_CHEATING);
1208            test_string!(0, super::CHASING_A_BUTTERYFLY);
1209            test_string!(0, super::ANGEL);
1210            test_string!(0, super::ONE_MORE_ANGEL);
1211            test_string!(0, super::POPULAR_LYING_EMOTICON);
1212            test_string!(0, super::ANOTHER_LYING_EMOTICON);
1213        }
1214    }
1215}
1216
1217pub const ASCII: [&[u8]; 31] = [
1218    positive_emotions::EMBARRESMENT[1],
1219    positive_emotions::EMBARRESMENT[6],
1220    positive_emotions::EMBARRESMENT[14],
1221    negative_emotions::DISSATISFACTION[18],
1222    negative_emotions::DISSATISFACTION[22],
1223    negative_emotions::SADNESS[1],
1224    negative_emotions::SADNESS[28],
1225    negative_emotions::SADNESS[29],
1226    negative_emotions::PAIN[0],
1227    negative_emotions::PAIN[5],
1228    negative_emotions::FEAR[5],
1229    negative_emotions::FEAR[14],
1230    neutral_emotions::SUPRISE[5],
1231    neutral_emotions::SUPRISE[6],
1232    neutral_emotions::SUPRISE[7],
1233    neutral_emotions::SUPRISE[9],
1234    various_actions::GREETING[4],
1235    various_actions::GREETING[23],
1236    various_actions::HUGGING[12],
1237    various_actions::WINKING[0],
1238    various_actions::WINKING[2],
1239    various_actions::WINKING[6],
1240    various_actions::WINKING[12],
1241    various_actions::WINKING[16],
1242    various_actions::APOLOGIZING[0],
1243    various_actions::APOLOGIZING[2],
1244    various_actions::APOLOGIZING[3],
1245    various_actions::APOLOGIZING[6],
1246    various_actions::APOLOGIZING[7],
1247    various_actions::SLEEPING[5],
1248    various_actions::SLEEPING[9],
1249];