list.go
func (l *List) UnmarshalText(text []byte) error {
	m := parse.Bytes(text)
	defer m.Release()
	capacity := len(m.List)
	if len(m.Text) == 0 {
		capacity += 2
	}
	list := make(List, 0, capacity)

	if len(m.Text) > 0 {
		list = append(list, "msg", string(m.Text))
	}
	for _, v := range m.List {
		list = append(list, string(v))
	}
	*l = list
	return nil
}
func (l *List) UnmarshalText(text []byte) error {
	m := parse.Bytes(text)
	defer m.Release()
	capacity := len(m.List)
	if len(m.Text) == 0 {
		capacity += 2
	}
	list := make(List, 0, capacity)

	if len(m.Text) > 0 {
		list = append(list, "msg", string(m.Text))
	}
	for _, v := range m.List {
		list = append(list, string(v))
	}
	*l = list
	return nil
}
// UnmarshalText implements the TextUnmarshaler interface.