48 lines
908 B
Go
48 lines
908 B
Go
package meta
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
"git.loafle.net/overflow/model/util"
|
|
)
|
|
|
|
type MetaIPType struct {
|
|
ID json.Number `json:"id,Number,omitempty"`
|
|
Name string `json:"name,omitempty"`
|
|
Key string `json:"key,omitempty"`
|
|
CreateDate *util.Timestamp `json:"createDate,omitempty"`
|
|
}
|
|
|
|
type MetaIPTypeEnum int
|
|
|
|
const (
|
|
MetaIPTypeEnumV4 MetaIPTypeEnum = iota + 1
|
|
MetaIPTypeEnumV6
|
|
)
|
|
|
|
var (
|
|
metaIPTypeEnumID = map[MetaIPTypeEnum]string{
|
|
MetaIPTypeEnumV4: "V4",
|
|
MetaIPTypeEnumV6: "V6",
|
|
}
|
|
|
|
metaIPTypeEnumKey = map[string]MetaIPTypeEnum{
|
|
"V4": MetaIPTypeEnumV4,
|
|
"V6": MetaIPTypeEnumV6,
|
|
}
|
|
)
|
|
|
|
func (e MetaIPTypeEnum) String() string {
|
|
return metaIPTypeEnumID[e]
|
|
}
|
|
|
|
func ToMetaIPTypeEnum(v *MetaIPType) MetaIPTypeEnum {
|
|
return metaIPTypeEnumKey[v.Key]
|
|
}
|
|
|
|
func ToMetaIPType(v MetaIPTypeEnum) *MetaIPType {
|
|
return &MetaIPType{
|
|
Key: metaIPTypeEnumID[v],
|
|
}
|
|
}
|