func (m *MapStore) ReadPuppy(id uint16) (puppy.Puppy, error) {
	if puppy, ok := m.puppies[id]; ok {
		return puppy, nil
	}
	return puppy.Puppy{}, puppy.Errorf(puppy.ErrIDNotFound, "puppy with ID:%d not found", id)
}
ReadPuppy reads store by Puppy ID
package store
import (
	puppy "github.com/anz-bank/go-course/08_project/runnerdave/pkg/puppy"
)
type MapStore struct {
	puppies map[uint16]puppy.Puppy
}
func NewMapStore() *MapStore {
	return &MapStore{puppies: map[uint16]puppy.Puppy{}}
}
func (m *MapStore) CreatePuppy(p *puppy.Puppy) error {
	if err := puppy.ValidateValue(p.Value); err != nil {
		return err
	}
	if _, ok := m.puppies[p.ID]; ok {
		return puppy.Errorf(puppy.ErrUnknown, "puppy with id %d already exists", p.ID)
	}
	m.puppies[p.ID] = *p
	return nil
}