33 lines
743 B
Go
33 lines
743 B
Go
|
package peers
|
||
|
|
||
|
import "github.com/vacp2p/mvds/state"
|
||
|
|
||
|
type MemoryPersistence struct {
|
||
|
peers map[state.GroupID][]state.PeerID
|
||
|
}
|
||
|
|
||
|
func NewMemoryPersistence() *MemoryPersistence {
|
||
|
return &MemoryPersistence{
|
||
|
peers: make(map[state.GroupID][]state.PeerID),
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (p *MemoryPersistence) Add(groupID state.GroupID, peerID state.PeerID) error {
|
||
|
p.peers[groupID] = append(p.peers[groupID], peerID)
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (p *MemoryPersistence) Exists(groupID state.GroupID, peerID state.PeerID) (bool, error) {
|
||
|
for _, peer := range p.peers[groupID] {
|
||
|
if peer == peerID {
|
||
|
return true, nil
|
||
|
}
|
||
|
}
|
||
|
return false, nil
|
||
|
}
|
||
|
|
||
|
func (p *MemoryPersistence) GetByGroupID(groupID state.GroupID) ([]state.PeerID, error) {
|
||
|
return p.peers[groupID], nil
|
||
|
}
|
||
|
|