truckstop/config/state.go

75 lines
1.1 KiB
Go

package config
import (
"encoding/json"
"errors"
)
type State string
var States = map[State]string{
"AL": "99654",
"AR": "72401",
"AZ": "85364",
"CA": "90011",
"CO": "80013",
"CT": "06902",
"DE": "19720",
"FL": "33024",
"GA": "30043",
"HI": "96706",
"IA": "50613",
"ID": "83646",
"IL": "60629",
"IN": "47906",
"KS": "66062",
"KY": "40475",
"LA": "70726",
"MA": "02301",
"MD": "20906",
"ME": "04401",
"MI": "48197",
"MN": "55106",
"MO": "63376",
"MS": "39503",
"MT": "59901",
"NC": "27006",
"ND": "58103",
"NE": "68516",
"NH": "03103",
"NJ": "08701",
"NM": "87121",
"NV": "89108",
"NY": "11368",
"OH": "45011",
"OK": "73099",
"OR": "97006",
"PA": "19120",
"RI": "02860",
"SC": "29483",
"SD": "57106",
"TN": "37013",
"TX": "77449",
"UT": "84058",
"VA": "22193",
"VT": "05401",
"WA": "99301",
"WI": "53215",
"WV": "26554",
"WY": "82001",
}
func (state *State) UnmarshalJSON(b []byte) error {
var s string
if err := json.Unmarshal(b, &s); err != nil {
return err
}
for k := range States {
if string(k) == s {
*state = k
return nil
}
}
return errors.New("unknown state " + s)
}