func (s MapStore) ReadPuppy(id uint32) (*Puppy, error) {
	if s == nil {
		return nil, ErrNotConstructed
	}
	val, found := s[id]
	if !found {
		return nil, fmt.Errorf("no puppy with ID %v found", id)
	}
	retVal := *val
	return &retVal, nil
}
ReadPuppy retrieve your puppy.
package main
import (
	"errors"
	"fmt"
	"github.com/google/uuid"
)
type MapStore map[uint32]*Puppy
func (s MapStore) length() int {
	return len(s)
}
var ErrNotConstructed = errors.New("store not created")
func (s MapStore) CreatePuppy(p *Puppy) (uint32, error) {
	if s == nil {
		return 0, ErrNotConstructed
	}
	p.ID = uuid.New().ID()
	sp := *p
	s[p.ID] = &sp
	return p.ID, nil
}