20 lines
400 B
C
20 lines
400 B
C
////////////////////////////////
|
|
//~ Uid types
|
|
|
|
Struct(Uid)
|
|
{
|
|
u64 hi;
|
|
u64 lo;
|
|
};
|
|
|
|
////////////////////////////////
|
|
//~ Uid operations
|
|
|
|
#define UID(hi64, lo64) ((Uid) { .hi = (hi64), .lo = (lo64) })
|
|
|
|
Uid UidFromTrueRand(void);
|
|
Uid CombineUid(Uid a, Uid b);
|
|
|
|
Inline b32 EqUid(Uid a, Uid b) { return a.hi == b.hi && a.lo == b.lo; }
|
|
Inline b32 IsUidZero(Uid v) { return v.hi == 0 && v.lo == 0; }
|