101 lines
1.8 KiB
Go
101 lines
1.8 KiB
Go
// Code generated by github.com/infraboard/mcube/v2
|
|
// DO NOT EDIT
|
|
|
|
package resource
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
// ParseVENDORFromString Parse VENDOR from string
|
|
func ParseVENDORFromString(str string) (VENDOR, error) {
|
|
key := strings.Trim(string(str), `"`)
|
|
v, ok := VENDOR_value[strings.ToUpper(key)]
|
|
if !ok {
|
|
return 0, fmt.Errorf("unknown VENDOR: %s", str)
|
|
}
|
|
|
|
return VENDOR(v), nil
|
|
}
|
|
|
|
// Equal type compare
|
|
func (t VENDOR) Equal(target VENDOR) bool {
|
|
return t == target
|
|
}
|
|
|
|
// IsIn todo
|
|
func (t VENDOR) IsIn(targets ...VENDOR) bool {
|
|
for _, target := range targets {
|
|
if t.Equal(target) {
|
|
return true
|
|
}
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
// MarshalJSON todo
|
|
func (t VENDOR) MarshalJSON() ([]byte, error) {
|
|
b := bytes.NewBufferString(`"`)
|
|
b.WriteString(strings.ToUpper(t.String()))
|
|
b.WriteString(`"`)
|
|
return b.Bytes(), nil
|
|
}
|
|
|
|
// UnmarshalJSON todo
|
|
func (t *VENDOR) UnmarshalJSON(b []byte) error {
|
|
ins, err := ParseVENDORFromString(string(b))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
*t = ins
|
|
return nil
|
|
}
|
|
|
|
// ParseTYPEFromString Parse TYPE from string
|
|
func ParseTYPEFromString(str string) (TYPE, error) {
|
|
key := strings.Trim(string(str), `"`)
|
|
v, ok := TYPE_value[strings.ToUpper(key)]
|
|
if !ok {
|
|
return 0, fmt.Errorf("unknown TYPE: %s", str)
|
|
}
|
|
|
|
return TYPE(v), nil
|
|
}
|
|
|
|
// Equal type compare
|
|
func (t TYPE) Equal(target TYPE) bool {
|
|
return t == target
|
|
}
|
|
|
|
// IsIn todo
|
|
func (t TYPE) IsIn(targets ...TYPE) bool {
|
|
for _, target := range targets {
|
|
if t.Equal(target) {
|
|
return true
|
|
}
|
|
}
|
|
|
|
return false
|
|
}
|
|
|
|
// MarshalJSON todo
|
|
func (t TYPE) MarshalJSON() ([]byte, error) {
|
|
b := bytes.NewBufferString(`"`)
|
|
b.WriteString(strings.ToUpper(t.String()))
|
|
b.WriteString(`"`)
|
|
return b.Bytes(), nil
|
|
}
|
|
|
|
// UnmarshalJSON todo
|
|
func (t *TYPE) UnmarshalJSON(b []byte) error {
|
|
ins, err := ParseTYPEFromString(string(b))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
*t = ins
|
|
return nil
|
|
}
|