func (ksm KeyScoreMember) MarshalJSON() ([]byte, error) {
	return json.Marshal(&jsonKeyScoreMember{
		Key:    []byte(ksm.Key),
		Score:  ksm.Score,
		Member: []byte(ksm.Member),
	})
}
MarshalJSON makes sure that the strings in KeyScoreMember are
marshalled properly as byte sequences (i.e. base64 encoded in the
JSON data; the JSON string encoding is neither efficient nor
reliable for arbitrary byte sequences).
package common
import (
	"encoding/json"
)
type KeyMember struct {
	Key    string
	Member string
}
type KeyScoreMember struct {
	Key    string
	Score  float64
	Member string
}
func (ksm KeyScoreMember) Cursor() Cursor {
	return Cursor{
		Score:  ksm.Score,
		Member: ksm.Member,
	}
}
type jsonKeyScoreMember struct {
	Key    []byte  `json:"key"`
	Score  float64 `json:"score"`
	Member []byte  `json:"member"`
}