GameShow/questions/storage/pair.go

37 lines
620 B
Go
Executable File

package storage
import (
"github.com/buger/jsonparser"
)
type Pair struct {
ID string `json:"id"`
Text string `json:"text"`
}
func New(id, text string) Pair {
return Pair{
Text: text,
ID: id,
}
}
func (p *Pair) UnmarshalJSON(b []byte) error {
var err error
if s, err := jsonparser.GetString(b); err == nil {
p.ID = s
return nil
}
if p.Text, err = jsonparser.GetString(b, "text"); err != nil {
return err
}
if p.ID, err = jsonparser.GetString(b, "id"); err != nil && err != jsonparser.KeyPathNotFoundError {
return err
}
return nil
}
func (p Pair) Equals(o Pair) bool {
return p == o
}