record-manager-template/include/record.h
trevon 7e5c368800
Some checks failed
grade / grade (push) Failing after 1m1s
template: starter + setup + milestone + agents + workflow
2026-08-26 01:07:25 +00:00

40 lines
1.1 KiB
C

#ifndef RECORD_H
#define RECORD_H
#include <stddef.h>
/*
* Uniform status codes. Every fallible function returns status_t; check it at
* the call site. STATUS_OK (0) always means success.
*/
typedef enum {
STATUS_OK = 0,
STATUS_ERR_ARG, /* bad input / usage */
STATUS_ERR_NOMEM, /* allocation failed */
STATUS_ERR_IO, /* file or stream error */
STATUS_ERR_NOTFOUND, /* item not present */
} status_t;
/*
* One record. Pick a flavor and map the three fields:
* contacts -> name, email, phone
* gradebook -> student, assignment, score
* expenses -> date, category, amount
*/
typedef struct record {
char *name;
char *field1;
char *field2;
} record_t;
/* Heap-allocate a record with deep copies of the strings (NULL/empty allowed).
Returns NULL on allocation failure. */
record_t *record_new(const char *name, const char *field1, const char *field2);
/* Free a record and its owned strings. */
void record_free(record_t *rec);
/* Human-readable name for a status code (never NULL). */
const char *status_str(status_t s);
#endif /* RECORD_H */