github.com/signintech/pdft@v0.5.0/minigopdf/fontmaker/core/ttf_info.go (about) 1 package core 2 3 import ( 4 "errors" 5 ) 6 7 var ERROR_NO_KEY_FOUND = errors.New("no key found") 8 var ERROR_NO_GET_WRONG_TYPE = errors.New("get wrong type") 9 10 type TtfInfo map[string]interface{} 11 12 func (me TtfInfo) PushString(key string, val string) { 13 me[key] = val 14 } 15 16 func (me TtfInfo) PushBytes(key string, val []byte) { 17 me[key] = val 18 } 19 20 func (me TtfInfo) PushInt64(key string, val int64) { 21 me[key] = val 22 } 23 24 func (me TtfInfo) PushInt(key string, val int) { 25 me[key] = val 26 } 27 28 func (me TtfInfo) PushUInt64(key string, val uint) { 29 me[key] = val 30 } 31 32 func (me TtfInfo) PushBool(key string, val bool) { 33 me[key] = val 34 } 35 36 func (me TtfInfo) PushInt64s(key string, val []int) { 37 me[key] = val 38 } 39 40 func (me TtfInfo) PushMapIntInt64(key string, val map[int]int) { 41 me[key] = val 42 } 43 44 func (me TtfInfo) GetBool(key string) (bool, error) { 45 if val, ok := me[key]; ok { 46 47 if m, ok := val.(bool); ok { 48 /* act on str */ 49 return m, nil 50 } else { 51 return false, ERROR_NO_GET_WRONG_TYPE 52 } 53 } else { 54 return false, ERROR_NO_KEY_FOUND 55 } 56 } 57 58 func (me TtfInfo) GetString(key string) (string, error) { 59 if val, ok := me[key]; ok { 60 61 if m, ok := val.(string); ok { 62 /* act on str */ 63 return m, nil 64 } else { 65 return "", ERROR_NO_GET_WRONG_TYPE 66 } 67 } else { 68 return "", ERROR_NO_KEY_FOUND 69 } 70 } 71 72 func (me TtfInfo) GetInt64(key string) (int, error) { 73 if val, ok := me[key]; ok { 74 75 if m, ok := val.(int); ok { 76 /* act on str */ 77 return m, nil 78 } else { 79 return 0, ERROR_NO_GET_WRONG_TYPE 80 } 81 } else { 82 return 0, ERROR_NO_KEY_FOUND 83 } 84 } 85 86 func (me TtfInfo) GetInt64s(key string) ([]int, error) { 87 if val, ok := me[key]; ok { 88 89 if m, ok := val.([]int); ok { 90 /* act on str */ 91 return m, nil 92 } else { 93 return nil, ERROR_NO_GET_WRONG_TYPE 94 } 95 } else { 96 return nil, ERROR_NO_KEY_FOUND 97 } 98 } 99 100 func (me TtfInfo) GetMapIntInt64(key string) (map[int]int, error) { 101 if val, ok := me[key]; ok { 102 103 if m, ok := val.(map[int]int); ok { 104 /* act on str */ 105 return m, nil 106 } else { 107 return nil, ERROR_NO_GET_WRONG_TYPE 108 } 109 } else { 110 return nil, ERROR_NO_KEY_FOUND 111 } 112 } 113 114 func NewTtfInfo() TtfInfo { 115 info := make(TtfInfo) 116 return info 117 }