(SOC) Storage Only Commit

(ADD) Name, NameScope, Catlog, Object, String, Attribute, Char, Registry, Utils, Type, <Platform Support>, <Global Constants>, README

(MOD) Array, Var, Status, MemMan, <Common>
This commit is contained in:
William
2024-05-16 00:04:42 +08:00
parent 989e512f8f
commit 5f7a6c6f93
32 changed files with 1694 additions and 195 deletions

83
Array/src/array.c Normal file
View File

@@ -0,0 +1,83 @@
#include <Compound/array.h>
Status Array_Create(Array *inst, int len)
{
/* Skip unavailable inst and invalid param. */
fails(inst, UnavailableInstance);
state((len < 0), InvalidArrayLength);
solve((!len), { inst->len = 0; inst->members = NULL; return NormalStatus; })
}
Status Array_CopyOf(Array *inst, Array *other)
{
/* Skip unavailable inst and invalid param. */
fails(inst, UnavailableInstance);
}
Status Array_Delete(Array *inst)
{
/* Skip unavailable inst and invalid param. */
fails(inst, UnavailableInstance);
}
Status Array_GetIdx(Array *inst, Var *store, int index)
{
/* Skip unavailable inst and invalid param. */
fails(inst, UnavailableInstance);
}
Status Array_SetIdx(Array *inst, Var *source, int index)
{
/* Skip unavailable inst and invalid param. */
fails(inst, UnavailableInstance);
}
Status Array_Literalise(Array *inst, char const *store)
{
/* Skip unavailable inst and invalid param. */
fails(inst, UnavailableInstance);
}
bool Array_Equal(Array *arr1, Array *arr2)
{
/* Skip unavailable inst and invalid param. */
state((arr1 == NULL || arr2 == NULL), false);
}
// Status Array_Create(Array *inst, int len)
// {
// fails(inst, UnavailableInstance);
// state(len < 0, InvalidArrayLength);
// Var arr[len] = {};
// *inst = (Array) {
// .len = len,
// .members = arr
// };
// /* Initialise members. */
// for (register int i = 0; i < inst->len; i++) {
// state(!(StatusUtils_IsOkay(Var_Create(&inst->members[i], NULL, 0, NULL))),
// error(RuntimeError,
// "Failed initialisations on var_create for array_create."));
// }
// return NormalStatus;
// }
// Status Array_Delete(Array *inst);
// bool ArrayUtils_IsEmpty(Array *inst);
// bool Array_Equal(Array *arr1, Array *arr2);