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  }