1package protocol
2
3import (
4	"regexp"
5)
6
7var validTopicChannelNameRegex = regexp.MustCompile(`^[\.a-zA-Z0-9_-]+(#ephemeral)?$`)
8
9// IsValidTopicName checks a topic name for correctness
10func IsValidTopicName(name string) bool {
11	return isValidName(name)
12}
13
14// IsValidChannelName checks a channel name for correctness
15func IsValidChannelName(name string) bool {
16	return isValidName(name)
17}
18
19func isValidName(name string) bool {
20	if len(name) > 64 || len(name) < 1 {
21		return false
22	}
23	return validTopicChannelNameRegex.MatchString(name)
24}
25