func (m *SyncStore) CreatePuppy(puppy *Puppy) int {
	m.Lock()
	defer m.Unlock()
	m.currID++
	puppy.ID = m.currID
	m.Store(m.currID, *puppy)
	return puppy.ID
}
CreatePuppy takes a user provided puppy and creates a new Puppy in the store
puppy ID is updated with the next ID
returns the ID of the new Puppy.
package main
import (
	"fmt"
	"sync"
)
type SyncStore struct {
	sync.Map
	sync.Mutex
	currID int
}
func NewSyncStore() *SyncStore {
	return &SyncStore{}
}