func (m *MapStore) DeletePuppy(id uint16) (bool, error) {
	if _, ok := m.puppies[id]; ok {
		delete(m.puppies, id)
		return true, nil
	}
	return false, fmt.Errorf("puppy with id %d not found", id)
}
DeletePuppy deletes a puppy by id from the store
package main
import "fmt"
type MapStore struct {
	puppies map[uint16]Puppy
}
func NewMapStore() *MapStore {
	var m MapStore
	m.puppies = make(map[uint16]Puppy)
	return &m
}
func (m *MapStore) CreatePuppy(p *Puppy) error {
	if _, ok := m.puppies[p.ID]; ok {
		return fmt.Errorf("puppy with id %d already exists", p.ID)
	}
	m.puppies[p.ID] = *p
	return nil
}
func (m *MapStore) ReadPuppy(id uint16) (Puppy, error) {
	if puppy, ok := m.puppies[id]; ok {
		return puppy, nil
	}
	return Puppy{}, fmt.Errorf("puppy not found")
}
func (m *MapStore) UpdatePuppy(id uint16, p *Puppy) error {
	m.puppies[id] = *p
	return nil
}