36 lines
687 B
Go
36 lines
687 B
Go
package dnsexit_manager
|
|
|
|
import dns "git.uoc.run.place/OxFF/dns-manager"
|
|
|
|
type RecordSet struct {
|
|
records map[dns.Record]struct{}
|
|
}
|
|
|
|
func NewRecordSet() *RecordSet {
|
|
return &RecordSet{
|
|
records: make(map[dns.Record]struct{}),
|
|
}
|
|
}
|
|
|
|
func (s *RecordSet) Add(record *dns.Record) {
|
|
s.records[*record] = struct{}{}
|
|
}
|
|
|
|
func (s *RecordSet) Remove(record dns.Record) {
|
|
delete(s.records, record)
|
|
}
|
|
|
|
func (s *RecordSet) Contains(record *dns.Record) bool {
|
|
_, exists := s.records[*record]
|
|
return exists
|
|
}
|
|
|
|
func (s *RecordSet) List() *[]dns.Record {
|
|
records := make([]dns.Record, 0, len(s.records))
|
|
for record := range s.records {
|
|
records = append(records, record)
|
|
}
|
|
|
|
return &records
|
|
}
|