package file import ( "encoding/json" "os" "git.andreafazzi.eu/andrea/probo/models" "git.andreafazzi.eu/andrea/probo/store" ) type ParticipantFileStore = FileStore[*models.Participant, *store.Store[*models.Participant]] func NewParticipantFileStore(config *FileStoreConfig[*models.Participant, *store.Store[*models.Participant]]) (*ParticipantFileStore, error) { return NewFileStore[*models.Participant](config, store.NewStore[*models.Participant]()) } func DefaultUnmarshalParticipantFunc(s *store.Store[*models.Participant], filepath string, content []byte) (*models.Participant, error) { participant := new(models.Participant) err := json.Unmarshal(content, &participant) if err != nil { return nil, err } c, err := s.Create(participant) if err != nil { return nil, err } return c, nil } func DefaultMarshalParticipantFunc(s *store.Store[*models.Participant], filePath string, participant *models.Participant) error { jsonData, err := json.Marshal(participant) if err != nil { return err } file, err := os.Create(filePath) if err != nil { return err } defer file.Close() _, err = file.Write(jsonData) if err != nil { return err } return nil }