code: func (z *Tr) UnmarshalMsg(bts []byte) (o []byte, err error) {
  	var field []byte
  	_ = field
  	var isz uint32
  	isz, bts, err = msgp.ReadMapHeaderBytes(bts)
  	if err != nil {
  		return
  	}
  	for isz > 0 {
  		isz--
  		field, bts, err = msgp.ReadMapKeyZC(bts)
  		if err != nil {
  			return
  		}
  		switch msgp.UnsafeString(field) {
  		case "u":
  			bts, err = z.UUID.UnmarshalMsg(bts)
  			if err != nil {
  				return
  			}
  		case "c":
  			z.Count, bts, err = msgp.ReadIntBytes(bts)
  			if err != nil {
  				return
  			}
  		case "r":
  			bts, err = z.Root.UnmarshalMsg(bts)
  			if err != nil {
  				return
  			}
  		case "nw":
  			z.NodeWidth, bts, err = msgp.ReadIntBytes(bts)
  			if err != nil {
  				return
  			}
  		default:
  			bts, err = msgp.Skip(bts)
  			if err != nil {
  				return
  			}
  		}
  	}
  	o = bts
  	return
  }
docs: // UnmarshalMsg implements msgp.Unmarshaler