You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

80 lines
1.4 KiB

// Code generated by gitoa.ru/go-4devs/mime and sourse {{.Source}}
package {{.MimePackage}}
import (
"encoding"
"fmt"
"strings"
)
var (
_ encoding.TextUnmarshaler = (*Mime)(nil)
_ encoding.TextMarshaler = (*Mime)(nil)
)
type Mime int
type MimeTypes []Mime
func (v Mime) Is(types ...Mime) bool {
for _, mime := range types {
if mime == v {
return true
}
}
return false
}
func (v Mime) MarshalText() ([]byte, error) {
return []byte(v.String()), nil
}
func (s *Mime) UnmarshalText(text []byte) error {
mime := MimeFromString(strings.ToLower(string(text)))
*s = mime
return nil
}
func (v Mime) String() string {
switch v {
case {{ name .MimePrefix "unrecognized" }}:
return "unrecognized"
{{- range $value := .Mimes }}
case {{ name $.MimePrefix $value.Name }}:
return "{{- $value.Name -}}"
{{- end}}
}
return fmt.Sprintf("Mime(%d)",v)
}
func (v Mime) ExtTypes() ExtTypes{
switch v {
{{- range $value := .Mimes }}
case {{ name $.MimePrefix $value.Name }}:
return []Ext{ {{- value $.ExtPrefix $value.Value -}} }
{{- end}}
}
return nil
}
const (
{{ name .MimePrefix "unrecognized" }} Mime = 0
{{- range $value := .Mimes }}
{{ name $.MimePrefix $value.Name }} Mime = {{ $value.ID }}
{{- end}}
)
func MimeFromString(name string) Mime {
switch name {
{{- range $value := .Mimes }}
case "{{- $value.Name -}}":
return {{ name $.MimePrefix $value.Name }}
{{- end}}
}
return {{ name .MimePrefix "unrecognized" }}
}