package httpsfv
import (
"strings"
)
type Item struct {
Value interface {}
Params *Params
}
func NewItem (v interface {}) Item {
assertBareItem (v )
return Item {v , NewParams ()}
}
func (i Item ) member () {
}
func (i Item ) marshalSFV (b *strings .Builder ) error {
if i .Value == nil {
return ErrInvalidBareItem
}
if err := marshalBareItem (b , i .Value ); err != nil {
return err
}
return i .Params .marshalSFV (b )
}
func UnmarshalItem (v []string ) (Item , error ) {
s := &scanner {
data : strings .Join (v , "," ),
}
s .scanWhileSp ()
sfv , err := parseItem (s )
if err != nil {
return Item {}, err
}
s .scanWhileSp ()
if !s .eof () {
return Item {}, &UnmarshalError {off : s .off }
}
return sfv , nil
}
func parseItem(s *scanner ) (Item , error ) {
bi , err := parseBareItem (s )
if err != nil {
return Item {}, err
}
p , err := parseParams (s )
if err != nil {
return Item {}, err
}
return Item {bi , p }, nil
}
The pages are generated with Golds v0.8.2 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .