hub/internal/domain/suid.go

26 lines
550 B
Go
Raw Normal View History

2023-03-12 07:33:08 +00:00
package domain
import "net/url"
2023-03-12 07:33:08 +00:00
// SUID describes a subscription's unique key is the tuple ([Topic] URL,
// Subscriber [Callback] URL).
type SUID struct {
topic string
callback string
2023-03-12 07:33:08 +00:00
}
func NewSSID(topic Topic, callback *url.URL) SUID {
2023-03-12 07:33:08 +00:00
return SUID{
topic: topic.Self.String(),
callback: callback.String(),
2023-03-12 07:33:08 +00:00
}
}
func (suid SUID) Equal(target SUID) bool {
return suid.topic == target.topic && suid.callback == target.callback
2023-03-12 07:33:08 +00:00
}
func (suid SUID) GoString() string {
return "domain.SUID(" + suid.topic + ":" + suid.callback + ")"
2023-03-12 07:33:08 +00:00
}