-
Notifications
You must be signed in to change notification settings - Fork 0
/
character_set.go
35 lines (29 loc) · 993 Bytes
/
character_set.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package sms
import "github.com/matthewhartstonge/sms/gsm7"
// NewCharacterSet returns a character encoding set, with reversed maps for
// quick look up from either side.
func NewCharacterSet(
language Language,
runeBase map[rune]empty,
runeExtended map[rune]empty,
runeReplacements map[rune]string,
) *CharacterSet {
return &CharacterSet{
language: language,
runeBase: runeBase,
runeExtended: runeExtended,
runeReplacements: runeReplacements,
}
}
type empty = struct{}
// CharacterSet defines the character set that an SMS message is
type CharacterSet struct {
language Language
runeBase map[rune]empty
runeExtended map[rune]empty
runeReplacements map[rune]string
}
var charSetsGsm7 = map[Language]*CharacterSet{
LangDefault: NewCharacterSet(LangDefault, gsm7.DefaultBasic, gsm7.DefaultExtended, gsm7.DefaultReplacements),
LangEnglish: NewCharacterSet(LangEnglish, gsm7.EnglishBasic, gsm7.EnglishExtended, gsm7.EnglishReplacements),
}