1
1
package turtle
2
2
3
- import "strings"
4
-
5
3
// Emojis maps a name to an Emoji
6
4
var Emojis = make (map [string ]* Emoji )
7
5
@@ -11,39 +9,17 @@ func init() {
11
9
}
12
10
}
13
11
14
- // filter a given slice of Emoji by f
15
- func filter (emojis []* Emoji , f func (e * Emoji ) bool ) []* Emoji {
16
- var r []* Emoji
17
- for _ , e := range emojis {
18
- if f (e ) {
19
- r = append (r , e )
20
- }
21
- }
22
- return r
23
- }
24
-
25
- // category filters a slice of Emoji by Category
26
- func category (emojis []* Emoji , c string ) []* Emoji {
27
- return filter (emojis , func (e * Emoji ) bool {
28
- return e .Category == c
29
- })
12
+ // Search emojis by a name
13
+ func Search (s string ) []* Emoji {
14
+ return search (emojis , s )
30
15
}
31
16
32
- // keyword filters a slice of Emoji by Keywords
33
- func keyword (emojis []* Emoji , k string ) []* Emoji {
34
- return filter (emojis , func (e * Emoji ) bool {
35
- for _ , keyword := range e .Keywords {
36
- if keyword == k {
37
- return true
38
- }
39
- }
40
- return false
41
- })
17
+ // Keyword filters the emojis by a keyword
18
+ func Keyword (k string ) []* Emoji {
19
+ return keyword (emojis , k )
42
20
}
43
21
44
- // search Emoji in a slice by Name
45
- func search (emojis []* Emoji , s string ) []* Emoji {
46
- return filter (emojis , func (e * Emoji ) bool {
47
- return strings .Contains (e .Name , s )
48
- })
22
+ // Category filters the emojis by a category
23
+ func Category (c string ) []* Emoji {
24
+ return category (emojis , c )
49
25
}
0 commit comments