| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package httptoo
- import (
- "fmt"
- "strconv"
- "strings"
- "github.com/anacrolix/missinggo/mime"
- )
- func ParseAccept(line string) (parsed AcceptDirectives, err error) {
- dirs := strings.Split(line, ",")
- for _, d := range dirs {
- p := AcceptDirective{
- Q: 1,
- }
- ss := strings.Split(d, ";")
- switch len(ss) {
- case 2:
- p.Q, err = strconv.ParseFloat(ss[1], 32)
- if err != nil {
- return
- }
- fallthrough
- case 1:
- p.MimeType.FromString(ss[0])
- default:
- err = fmt.Errorf("error parsing %q", d)
- return
- }
- parsed = append(parsed, p)
- }
- return
- }
- type (
- AcceptDirectives []AcceptDirective
- AcceptDirective struct {
- MimeType mime.Type
- Q float64
- }
- )
|