package monstersirenfetch import ( "encoding/json" "strconv" "strings" ) // Response is a generic API response. type Response[T any] struct { Code int `json:"code"` Message string `json:"msg"` Data T `json:"data"` } // StringInt is a JSON string representing an integer. type StringInt int func (i *StringInt) MarshalJSON() ([]byte, error) { s := strconv.Itoa(int(*i)) if len(s) <= 4 { s = strings.Repeat("0", 4-len(s)) + s } else if len(s) < 6 { s = strings.Repeat("0", 6-len(s)) + s } return json.Marshal(s) } func (i *StringInt) UnmarshalJSON(data []byte) (err error) { var v string err = json.Unmarshal(data, &v) if err == nil { var n int n, err = strconv.Atoi(v) if err == nil { *i = StringInt(n) } } return }