case KEKSItemTrue:
fputs("TRUE\n", stdout);
break;
- case KEKSItemUUID:
- UUIDPrint(atom.v.uuid);
+ case KEKSItemHexlet:
+ UUIDPrint(atom.v.hexlet);
fputs("\n", stdout);
break;
case KEKSItemMagic:
adder(KEKSAtomMapEncode(&Got, buf + Off, len - Off)); // .
+ {
+ adder(KEKSAtomStrEncode(
+ &Got, buf + Off, len - Off, (const unsigned char *)"ip", 2));
+ memcpy(
+ bin,
+ (const unsigned char
+ *)"\x20\x01\x0d\xb8\x85\xa3\x08\xd3\x13\x19\x8a\x2e\x03\x70\x73\x48",
+ 16);
+ adder(KEKSAtomHexletEncode(&Got, buf + Off, len - Off, bin));
+ }
adder(
KEKSAtomStrEncode(&Got, buf + Off, len - Off, (const unsigned char *)"nil", 3));
adder(KEKSAtomNILEncode(&Got, buf + Off, len - Off));
adder(KEKSAtomStrEncode(
&Got, buf + Off, len - Off, (const unsigned char *)"uuid", 4));
- adder(KEKSAtomUUIDEncode(
+ adder(KEKSAtomHexletEncode(
&Got,
buf + Off,
len - Off,
adder(KEKSAtomBlobEncode(&Got, buf + Off, len - Off, 123));
adder(KEKSAtomBinEncode(&Got, buf + Off, len - Off, NULL, 0));
memset(bin, '\x00', 16);
- adder(KEKSAtomUUIDEncode(&Got, buf + Off, len - Off, bin));
+ adder(KEKSAtomHexletEncode(&Got, buf + Off, len - Off, bin));
{
buf[Off] = KEKSAtomTAI64;
Off++;
@anchor{KEKSAtomNILEncode}
@DOCSTRING KEKSAtomNILEncode@
@DOCSTRING KEKSAtomBoolEncode@
-@DOCSTRING KEKSAtomUUIDEncode@
+@DOCSTRING KEKSAtomHexletEncode@
@DOCSTRING KEKSAtomMagicEncode@
@DOCSTRING KEKSAtomUintEncode@
@DOCSTRING KEKSAtomSintEncode@
KEKSAtomNIL = 0x01,
KEKSAtomFalse = 0x02,
KEKSAtomTrue = 0x03,
- KEKSAtomUUID = 0x04,
+ KEKSAtomHexlet = 0x04,
KEKSAtomList = 0x08,
KEKSAtomMap = 0x09,
KEKSAtomBlob = 0x0B,
// @item KEKSItemNIL
// @item KEKSItemFalse
// @item KEKSItemTrue
-// @item KEKSItemUUID
+// @item KEKSItemHexlet
// @item KEKSItemPint -- positive integer
// @item KEKSItemNint -- negative integer
// @item KEKSItemList
KEKSItemNIL,
KEKSItemFalse,
KEKSItemTrue,
- KEKSItemUUID,
+ KEKSItemHexlet,
KEKSItemPint,
KEKSItemNint,
KEKSItemList,
// @item .typ
// High level @ref{KEKSItemType, type} of the atom's value. As a rule
// you should look solely on it.
-// @item .v.uuid
-// Pointer to 16-byte UUID value.
+// @item .v.hexlet
+// Pointer to 16-byte hexlet value.
// @item .v.pint
// Value of the positive integer.
// @item .v.nint
// @end deftp
struct KEKSAtom {
union {
- const unsigned char *uuid;
+ const unsigned char *hexlet;
uint64_t pint;
int64_t nint;
struct {
case KEKSAtomTrue:
atom->typ = KEKSItemTrue;
break;
- case KEKSAtomUUID:
- atom->typ = KEKSItemUUID;
+ case KEKSAtomHexlet:
+ atom->typ = KEKSItemHexlet;
(*got) += 16;
if (len < (*got)) {
return KEKSErrNotEnough;
}
- atom->v.uuid = buf + 1;
+ atom->v.hexlet = buf + 1;
break;
case KEKSAtomMagic:
atom->typ = KEKSItemMagic;
}
bool
-KEKSAtomUUIDEncode(
+KEKSAtomHexletEncode(
size_t *len,
unsigned char *buf,
const size_t cap,
if (cap < (1 + 16)) {
return false;
}
- buf[0] = KEKSAtomUUID;
+ buf[0] = KEKSAtomHexlet;
memcpy(buf + 1, v, 16);
return true;
}
bool
KEKSAtomBoolEncode(size_t *len, unsigned char *buf, const size_t cap, const bool v);
-// TEXINFO: KEKSAtomUUIDEncode
-// @deftypefun bool KEKSAtomUUIDEncode @
+// TEXINFO: KEKSAtomHexletEncode
+// @deftypefun bool KEKSAtomHexletEncode @
// (size_t *len, unsigned char *buf, const size_t cap, const unsigned char v[16])
-// Encode UUID atom in provided @var{buf} with capacity of @var{cap}.
+// Encode hexlet atom in provided @var{buf} with capacity of @var{cap}.
// In case of success, true is returned and @var{len} will hold how many
// bytes were written to buffer.
// @end deftypefun
bool
-KEKSAtomUUIDEncode(
+KEKSAtomHexletEncode(
size_t *len,
unsigned char *buf,
const size_t cap,
case KEKSItemTrue:
ok = KEKSAtomBoolEncode(&got, buf + *off, cap - (*off), true);
break;
- case KEKSItemUUID:
- ok = KEKSAtomUUIDEncode(&got, buf + *off, cap - (*off), item->atom.v.uuid);
+ case KEKSItemHexlet:
+ ok = KEKSAtomHexletEncode(&got, buf + *off, cap - (*off), item->atom.v.hexlet);
break;
case KEKSItemMagic:
ok = KEKSAtomMagicEncode(