func()

in Server/go/apptoken/service.go [75:108]


func (service *Service) Pack() ([]byte, error) {
	buf := new(bytes.Buffer)

	// channelId
	channelId := []byte(service.ChannelId)
	if err := binary.Write(buf, binary.BigEndian, int32(len(channelId))); err != nil {
		return nil, err
	}
	if _, err := buf.Write(channelId); err != nil {
		return nil, err
	}

	// userId
	userId := []byte(service.UserId)
	if err := binary.Write(buf, binary.BigEndian, int32(len(userId))); err != nil {
		return nil, err
	}
	if _, err := buf.Write(userId); err != nil {
		return nil, err
	}

	// hasPrivilege
	hasPrivilege := service.Privilege != nil
	if err := binary.Write(buf, binary.BigEndian, hasPrivilege); err != nil {
		return nil, err
	}
	// privilege
	if hasPrivilege {
		if err := binary.Write(buf, binary.BigEndian, *service.Privilege); err != nil {
			return nil, err
		}
	}
	return buf.Bytes(), nil
}