(MOD) Implemented Array_Equals. (MOD) Replaced struct member "description" from InstanceStillAlive from "Given instance was yet alive." to "Given instance was still alive.". (MOD) Removed String_GetIdx and String_SetIdx: Meaningless functions. (MOD) Changed the assignment value of struct member "identity" of macro unknown, normal and error from "nameof(e)" to "e.identity".
63 lines
1.6 KiB
C
63 lines
1.6 KiB
C
#ifndef COMPOUND_VAR
|
|
# define COMPOUND_VAR
|
|
|
|
# include <stdio.h>
|
|
|
|
# include <Compound/common.h>
|
|
# include <Compound/status.h>
|
|
# include <Compound/catlog.h>
|
|
|
|
// # define VAR_IDENTITY_LENGTH 64
|
|
// # define VAR_LITERALISE_LENGTH (VAR_IDENTITY_LENGTH + 16 + 9 + 10)
|
|
# define VAR_LITERALISE_LENGTH (16 + 9 + 10)
|
|
// # define VAR_LITERALISE_FORMAT ("%s @[%p]: %ld")
|
|
# define VAR_LITERALISE_FORMAT "@[%p]: %ld"
|
|
// # define VAR_IDENTITY_ILLEGAL_CHAR "!@#$%^*()-=+;\'\"\\|,./<>?[]{}`~ "
|
|
|
|
// static Status IllegalVarIdentity = {
|
|
// .value = 1,
|
|
// .description = "Given identity does not fit the standard of Var Naming "
|
|
// "convention.",
|
|
// .characteristic = STATUS_ERROR,
|
|
// .prev = &InvalidParameter
|
|
// };
|
|
|
|
// static Status VarIdentityTooLong = {
|
|
// .value = 1,
|
|
// .description = "Given identity has longer length that the maximum length "
|
|
// "limitation.",
|
|
// .characteristic = STATUS_ERROR,
|
|
// .prev = &IllegalVarIdentity
|
|
// };
|
|
|
|
typedef struct {
|
|
|
|
/* Data */
|
|
void *addr;
|
|
size_t size;
|
|
|
|
bool alive;
|
|
|
|
// /* Identification */
|
|
// char *identity; // Maximum up to VAR_IDENTITY_LENGTH
|
|
|
|
} Var;
|
|
|
|
// typedef struct {
|
|
// union {
|
|
// /* Self Pointing (Var) */
|
|
// const Var *__this__;
|
|
// };
|
|
// } _Var;
|
|
|
|
Status Var_Create(Var *inst, size_t size) throws(InsufficientMemory);
|
|
Status Var_CopyOf(Var *inst, Var *other);
|
|
Status Var_Delete(Var *inst);
|
|
Status Var_Literalise(Var *inst, char *buff);
|
|
bool Var_Equals(Var *a, Var *b);
|
|
|
|
void VarUtils_Swap(Var *v1, Var *v2);
|
|
// bool VarUtils_IsIdentityLegal(char *identity);
|
|
|
|
#endif /* COMPOUND_VAR */
|