func ParseTopic()

in server/pubsub/struct.go [75:97]


func ParseTopic(s string) (*Topic, error) {
	t := &Topic{
		Labels: make(map[string]string),
	}
	err := json.Unmarshal([]byte(s), t)
	if err != nil {
		return nil, err
	}
	if t.LabelsFormat == stringutil.LabelNone {
		return t, nil
	}
	ls := strings.Split(t.LabelsFormat, "::")
	if len(ls) != 0 {
		for _, l := range ls {
			s := strings.Split(l, "=")
			if len(s) != 2 {
				return nil, errors.New("invalid label:" + l)
			}
			t.Labels[s[0]] = s[1]
		}
	}
	return t, err
}