Macro
- Home /
- Categories /
- Macro
BitVecByteSize
BitVecByteSize Description Get u64 of bitvector in bytes. This returns the actual memory used by the bit data.
Read MoreScope
Scope Description Run a scoped block and automatically deinitialize the object at the end. Executes scope_body and ensures obj_deinit(obj) is called afterward, regardless of the block’s control flow. This is similar to RAII-style resource management in C++ but implemented manually via a macro. The object is passed by pointer. It is not copied or moved. This macro ensures the object is only evaluated once by capturing it internally using TYPE_OF. The memory pointed to by obj is not cleared after deinitialization; if zeroing is needed, do it inside obj_deinit. Parameters:
Read MoreValidateVec
ValidateVec Description Validate whether a given Vec object is valid. Not foolproof but will work most of the time. Aborts if provided Vec is not valid.
Read MoreVecAlignedOffsetAt
VecAlignedOffsetAt Description Vector implementation already manages alignment for stored objects. It makes sure that objects of improper size are stored at alignment of 8 bytes each to avoid UB.
Read MoreVecDeleteFast
VecDeleteFast Description Delete item at given index using faster implementation. Order preservation is not guaranteed
Read MoreVecDeleteRange
VecDeleteRange Description Delete items in given range [start, start + count)
Read MoreVecDeleteRangeFast
VecDeleteRangeFast Description Delete items in given range [start, start + count) using faster implementation. Order preservation is not guaranteed
Read MoreVecForeach
VecForeach Description Iterate over each element var of the given vector v. This is a convenience macro that iterates forward using an internally managed index. The variable var is declared and defined by this macro.
Read MoreVecForeachIdx
VecForeachIdx Description Iterate over each element var of given vector v at each index idx into the vector. The variables var and idx declared and defined by this macro. idx will start from 0 and will go till v->length - 1
Read MoreVecForeachInRange
VecForeachInRange Description Iterate over elements in a specific range of the given vector v. This is a convenience macro that iterates over a range using an internally managed index. The variable var is declared and defined by this macro.
Read MoreVecForeachInRangeIdx
VecForeachInRangeIdx Description Iterate over elements in a specific range of the given vector v at each index idx. The variables var and idx are declared and defined by this macro. idx will start from start and will go till end - 1
Read MoreVecForeachPtr
VecForeachPtr Description Iterate over each element var of the given vector v (as a pointer). This is a convenience macro that iterates forward using an internally managed index and provides a pointer to each element. The variable var is declared and defined by this macro as a pointer to the vector’s data type.
Read MoreVecForeachPtrIdx
VecForeachPtrIdx Description Iterate over each element var of given vector v at each index idx into the vector. The variables var and idx declared and defined by this macro. idx will start from 0 and will go till v->length - 1
Read MoreVecForeachPtrInRange
VecForeachPtrInRange Description Iterate over elements in a specific range of the given vector v (as pointers). This is a convenience macro that iterates over a range using an internally managed index and provides a pointer to each element. The variable var is declared and defined by this macro as a pointer to the vector’s data type.
Read MoreVecForeachPtrInRangeIdx
VecForeachPtrInRangeIdx Description Iterate over elements in a specific range of the given vector v at each index idx (as pointers). The variables var and idx are declared and defined by this macro. idx will start from start and will go till end - 1
Read MoreVecForeachPtrReverse
VecForeachPtrReverse Description Iterate over each element var (as a pointer) of the given vector v in reverse order. This is a convenience macro that iterates backward using an internally managed index and provides a pointer to each element. The variable var is declared and defined by this macro as a pointer to the vector’s data type.
Read MoreVecForeachPtrReverseIdx
VecForeachPtrReverseIdx Description Iterate over each element var of given vector v at each index idx into the vector. The variables var and idx declared and defined by this macro. idx will start from v->length - 1 and will go till 0
Read MoreVecForeachReverse
VecForeachReverse Description Iterate over each element var of the given vector v in reverse order. This is a convenience macro that iterates backward using an internally managed index. The variable var is declared and defined by this macro.
Read MoreVecForeachReverseIdx
VecForeachReverseIdx Description Iterate over each element var of given vector v at each index idx into the vector. The variables var and idx declared and defined by this macro. idx will start from v->length - 1 and will go till 0
Read MoreVecInitAligned
VecInitAligned Description Initialize vector with given alignment. It is mandatory to initialize vectors before use. Not doing so is undefined behaviour. Provided alignment is used to keep all objects at an aligned memory location, avoiding UB in some cases. It’s recommended to use aligned vector when dealing with structs containing unions.
Read MoreVecInitAlignedStack
VecInitAlignedStack Description Initialize given vector with given alignment. It is mandatory to initialize vectors before use. Not doing so is undefined behaviour. Provided alignment is used to keep all objects at an aligned memory location, avoiding UB in some cases. It’s recommended to use aligned vector when dealing with structs containing unions. These vectors are best used where user doesn’t get a chance to or does not want to deinit vector, given that no data in vector needs to be deinitialized. Example includes, but does not limit to a Vec(i8), Vec(f32), etc…
Read MoreVecInitAlignedT
VecInitAlignedT Description Initialize given vector with given alignment. It is mandatory to initialize vectors before use. Not doing so is undefined behaviour. Provided alignment is used to keep all objects at an aligned memory location, avoiding UB in some cases. It’s recommended to use aligned vector when dealing with structs containing unions.
Read MoreVecInitAlignedWithDeepCopy
VecInitAlignedWithDeepCopy Description Initialize vector with given alignment. It is mandatory to initialize vectors before use. Not doing so is undefined behaviour. Provided alignment is used to keep all objects at an aligned memory location, avoiding UB in some cases. It’s recommended to use aligned vector when dealing with structs containing unions.
Read MoreVecInitAlignedWithDeepCopyStack
VecInitAlignedWithDeepCopyStack Description Initialize given vector with given alignment. It is mandatory to initialize vectors before use. Not doing so is undefined behaviour. Provided alignment is used to keep all objects at an aligned memory location, avoiding UB in some cases. It’s recommended to use aligned vector when dealing with structs containing unions. These vectors are best used where user doesn’t get a chance to or does not want to deinit vector, given that no data in vector needs to be deinitialized. Example includes, but does not limit to a Vec(i8), Vec(f32), etc…
Read MoreVecInitStack
VecInitStack Description Initialize given vector using memory from stack. Such vectors cannot be dynamically resized. Doing so is UB. It is mandatory to initialize vectors before use. Not doing so is undefined behaviour. These vectors are best used where user doesn’t get a chance to or does not want to deinit vector, given that no data in vector needs to be deinitialized. Example includes, but does not limit to a Vec(i8), Vec(f32), etc… Stack inited vectors mustn’t be deinited after use.
Read MoreVecInitWithDeepCopy
VecInitWithDeepCopy Description Initialize vector. Default alignment is 1 It is mandatory to initialize vectors before use. Not doing so is undefined behaviour.
Read MoreVecInitWithDeepCopyStack
VecInitWithDeepCopyStack Description Initialize given vector using memory from stack. Such vectors cannot be dynamically resized. Doing so is UB. It is mandatory to initialize vectors before use. Not doing so is undefined behaviour. These vectors are best used where user doesn’t get a chance to or does not want to deinit vector, given that no data in vector needs to be deinitialized. Example includes, but does not limit to a Vec(i8), Vec(f32), etc… Stack inited vectors mustn’t be deinited after use.
Read MoreVecInitWithDeepCopyT
VecInitWithDeepCopyT Description Initialize given vector. Default alignment is 1 It is mandatory to initialize vectors before use. Not doing so is undefined behaviour.
Read MoreVecInsertFast
VecInsertFast Description By default this behaves like inserting an l-value using VecInsertFastL
Read MoreVecInsertFastL
VecInsertFastL Description Quickly insert item into vector. Ordering of elements is not guaranteed to be preserved. This call makes significant difference only for sufficiently large vectors and when idx is quite less than (v)->length. Insertion time is guaranteed to be constant for same data types. Usage is exactly same as VecInsert, just the internal implementation is different.
Read MoreVecInsertFastR
VecInsertFastR Description Quickly insert item into vector. Ordering of elements is not guaranteed to be preserved. This call makes significant difference only for sufficiently large vectors and when idx is quite less than (v)->length. Insertion time is guaranteed to be constant for same data types. Usage is exactly same as VecInsert, just the internal implementation is different.
Read MoreVecInsertL
VecInsertL Description Insert an l-value into vector of it’s type. Insertion index must not exceed vector length. This preserves the ordering of elements. Best to be used with sorted vectors, if the sorted property is to be preserved.
Read MoreVecInsertR
VecInsertR Description Insert an r-value into vector of it’s type. Insertion index must not exceed vector length. This preserves the ordering of elements. Best to be used with sorted vectors, if the sorted property is to be preserved. In worst case this would to to O(n)
Read MoreVecInsertRange
VecInsertRange Description Insert array of items into vector of it’s type. By default, this uses L-value semantics (ownership transfer). Insertion index must not exceed vector length. This preserves the ordering of elements. Best to be used with sorted vectors, if the sorted property is to be preserved.
Read MoreVecInsertRangeFast
VecInsertRangeFast Description Quickly insert array of items into vector. By default, this uses L-value semantics (ownership transfer). Ordering of elements is not guaranteed to be preserved. This call makes significant difference only for sufficiently large vectors and when idx is quite less than (v)->length. Insertion time is guaranteed to be constant for same data types.
Read MoreVecInsertRangeFastL
VecInsertRangeFastL Description Quickly insert array of items into vector, with L-value semantics. Ordering of elements is not guaranteed to be preserved. This call makes significant difference only for sufficiently large vectors and when idx is quite less than (v)->length. Insertion time is guaranteed to be constant for same data types.
Read MoreVecInsertRangeFastR
VecInsertRangeFastR Description Quickly insert array of items into vector, with R-value semantics. Ordering of elements is not guaranteed to be preserved. This call makes significant difference only for sufficiently large vectors and when idx is quite less than (v)->length. Insertion time is guaranteed to be constant for same data types.
Read MoreVecInsertRangeL
VecInsertRangeL Description Insert array of items into vector, with L-value semantics. Insertion index must not exceed vector length. This preserves the ordering of elements. Best to be used with sorted vectors, if the sorted property is to be preserved.
Read MoreVecInsertRangeR
VecInsertRangeR Description Insert array of items into vector, with R-value semantics. Insertion index must not exceed vector length. This preserves the ordering of elements. Best to be used with sorted vectors, if the sorted property is to be preserved.
Read MoreVecMerge
VecMerge Description Merge two vectors and store the result in the first vector. Data is copied from v2 into v. If a copy_init method is provided in v, each element from v2 will be copied using that method. Otherwise, a raw memory copy is performed, which may be unsafe for complex or pointer-containing data.
Read MoreVecMergeL
VecMergeL Description Merge two vectors and store the result in the first vector, with L-value semantics. Data is copied from v2 into v. If a copy_init method is provided in v, each element from v2 will be copied using that method. Otherwise, a raw memory copy is performed, which may be unsafe for complex or pointer-containing data.
Read MoreVecMergeR
VecMergeR Description Merge two vectors and store the result in the first vector, with R-value semantics. Data is copied from v2 into v. If a copy_init method is provided in v, each element from v2 will be copied using that method. Otherwise, a raw memory copy is performed, which may be unsafe for complex or pointer-containing data.
Read MoreVecPushBack
VecPushBack Description Push item into vector back. Default behaviour is same as VecPushBackL
Read MoreVecPushBackArr
VecPushBackArr Description Push a complete array into this vector. By default, this uses L-value semantics (ownership transfer).
Read MoreVecPushBackArrL
VecPushBackArrL Description Push a complete array into this vector, with L-value semantics.
Read MoreVecPushBackArrR
VecPushBackArrR Description Push a complete array into this vector, with R-value semantics.
Read MoreVecPushFrontArr
VecPushFrontArr Description Push a complete array into this vector front. By default, this uses L-value semantics (ownership transfer).
Read MoreVecPushFrontArrFast
VecPushFrontArrFast Description Push a complete array into this vector front without preserving the order of elements in vector. By default, this uses L-value semantics (ownership transfer).
Read MoreVecPushFrontArrFastL
VecPushFrontArrFastL Description Push a complete array into this vector front without preserving the order of elements in vector, with L-value semantics.
Read MoreVecPushFrontArrFastR
VecPushFrontArrFastR Description Push a complete array into this vector front without preserving the order of elements in vector, with R-value semantics.
Read MoreVecPushFrontArrL
VecPushFrontArrL Description Push a complete array into this vector front, with L-value semantics.
Read MoreVecPushFrontArrR
VecPushFrontArrR Description Push a complete array into this vector front, with R-value semantics.
Read MoreVecRemoveFast
VecRemoveFast Description Remove item from vector at given index and store in given pointer. Order of elements inside vector is not guaranteed to be preserved. The implementation is faster in some scenarios that VecRemove
Read MoreVecRemoveRange
VecRemoveRange Description Remove data from vector in given range [start, start + count) Order of elements is guaranteed to be preserved.
Read MoreVecRemoveRangeFast
VecRemoveRangeFast Description Remove item from vector at given index and store in given pointer. Order of elements inside vector is not guaranteed to be preserved. The implementation is faster in some scenarios that VecRemove
Read MoreVecTryReduceSpace
VecTryReduceSpace Description Try reducing memory footprint of vector. This is to be used when we know actual allocated memory for vec is large, and we won’t need it in future, so we can reduce it to whatever’s required at the moment.
Read MoreALIGN_DOWN
ALIGN_DOWN Description Aligns the given value down to the nearest multiple of alignment.
Read MoreALIGN_DOWN_POW2
ALIGN_DOWN_POW2 Description Aligns the given value down to the nearest power-of-two multiple.
Read MoreALIGN_UP_POW2
ALIGN_UP_POW2 Description Aligns the given value up to the nearest power-of-two multiple.
Read MoreAPPLY_MACRO_FOREACH
APPLY_MACRO_FOREACH Description Expand variadic argument list for given macro for each element one by one. This is a macro trick to apply a given macro on a variadic argument list one by one. The only limitiation here is that we cannot expand more than 256 times for the moment. To make it do more than that, we just need to add one more line to the EXPAND macros Also, if you have more than 20-30 arguments in your format strings, you should seriously consider whether you’re doing something wrong Reference : https://www.scs.stanford.edu/~dm/blog/va-opt.html
Read MoreAPPLY_MACRO_FOREACH_AGAIN
APPLY_MACRO_FOREACH_AGAIN Description Helper macro to delay evaluation in text generation (pre-processing) phase of macro
Read MoreAPPLY_MACRO_FOREACH_HELPER
APPLY_MACRO_FOREACH_HELPER Description Helper macro to apply given macro to the very first argument in list of variadic macro arguments Then expands to applying the same macro to more arguments only if there are more
Read MoreBitVecForeach
BitVecForeach Description Iterate over each bit var of the given bitvector bv. This is a convenience macro that iterates forward using an internally managed index. The variable var is declared and defined by this macro.
Read MoreBitVecForeachIdx
BitVecForeachIdx Description Iterate over each bit var of given bitvector bv at each index idx into the bitvector. The variables var and idx declared and defined by this macro. idx will start from 0 and will go till bv->length - 1
Read MoreBitVecForeachInRange
BitVecForeachInRange Description Iterate over bits in a specific range of the given bitvector bv. This is a convenience macro that iterates over a range using an internally managed index. The variable var is declared and defined by this macro.
Read MoreBitVecForeachInRangeIdx
BitVecForeachInRangeIdx Description Iterate over bits in a specific range of the given bitvector bv at each index idx. The variables var and idx are declared and defined by this macro. idx will start from start and will go till end - 1
Read MoreBitVecForeachReverse
BitVecForeachReverse Description Iterate over each bit var of the given bitvector bv in reverse order. This is a convenience macro that iterates backward using an internally managed index. The variable var is declared and defined by this macro.
Read MoreBitVecForeachReverseIdx
BitVecForeachReverseIdx Description Iterate over each bit var of given bitvector bv at each index idx into the bitvector. The variables var and idx declared and defined by this macro. idx will start from bv->length - 1 and will go till 0
Read MoreFROM_BIG_ENDIAN2
FROM_BIG_ENDIAN2 Description Conditionally converts value from big-endian to native byte order. On little-endian systems, this inverts the byte order. On big-endian systems, this is a no-op.
Read MoreFROM_BIG_ENDIAN4
FROM_BIG_ENDIAN4 Description Conditionally converts value from big-endian to native byte order. On little-endian systems, this inverts the byte order. On big-endian systems, this is a no-op.
Read MoreFROM_BIG_ENDIAN8
FROM_BIG_ENDIAN8 Description Conditionally converts value from big-endian to native byte order. On little-endian systems, this inverts the byte order. On big-endian systems, this is a no-op.
Read MoreFROM_LITTLE_ENDIAN2
FROM_LITTLE_ENDIAN2 Description Conditionally converts value from little-endian to native byte order. On big-endian systems, this inverts the byte order. On little-endian systems, this is a no-op.
Read MoreFROM_LITTLE_ENDIAN4
FROM_LITTLE_ENDIAN4 Description Conditionally converts value from little-endian to native byte order. On big-endian systems, this inverts the byte order. On little-endian systems, this is a no-op.
Read MoreFROM_LITTLE_ENDIAN8
FROM_LITTLE_ENDIAN8 Description Conditionally converts value from little-endian to native byte order. On big-endian systems, this inverts the byte order. On little-endian systems, this is a no-op.
Read MoreFWriteFmtLn
FWriteFmtLn Description Write formatted output to a file stream followed by a newline character. This macro internally uses StrWriteFmtInternal to format the string and then writes it to the stream followed by a newline.
Read MoreINVERT_ENDIANNESS2
INVERT_ENDIANNESS2 Description Inverts endianness of 16-bit (2-byte) value.
Read MoreINVERT_ENDIANNESS4
INVERT_ENDIANNESS4 Description Inverts endianness of 32-bit (4-byte) value.
Read MoreINVERT_ENDIANNESS8
INVERT_ENDIANNESS8 Description Inverts endianness of 64-bit (8-byte) value.
Read MoreIOFMT_LVAL_APPEND_COMMA
IOFMT_LVAL_APPEND_COMMA Description Helper macro to append a comma after wrapping given argument in IOFMT Used in following macros
Read MoreIS_CAPS_ALPHA
IS_CAPS_ALPHA Description Checks if the given character c is an uppercase ASCII alphabet.
Read MoreIS_PRINTABLE
IS_PRINTABLE Description Checks whether a given character ‘c’ is printable ascii or not.
Read MoreIter
Iter Description Memory iterators are there to allow reading regions of memory by remembering current read position and the size limit. With proper checking we can guarantee that we can never overflow or underflow when reading a memory region This also means that Iter objects are created for use with only one reading operation, and one object in their lifetime. The designed API does not allow modifications to the data Iter is iterating over FIELDS: - data : Pointer to memory we’re iterating over - length : Number of objects in memory. - pos : Current iterating position. - size : Alignment requirements (if-any), must be at-least 1 - dir : Iteration direction, -1 or 1
Read MoreIterInitAligned
IterInitAligned Description Initialize Iter with custom alignment to iterate in forward direction.
Read MoreIterInitAlignedT
IterInitAlignedT Description Initialize Iter with custom alignment to iterate in forward direction.
Read MoreIterInitFromVec
IterInitFromVec Description Initialize Iter from vector data to iterate in forward direction.
Read MoreIterInitFromVecT
IterInitFromVecT Description Initialize Iter from vector data to iterate in forward direction.
Read MoreIterInitRev
IterInitRev Description Initialize default Iter object to iterate in backward direction.
Read MoreIterInitRevAligned
IterInitRevAligned Description Initialize Iter with custom alignment to iterate in backward direction.
Read MoreIterInitRevAlignedT
IterInitRevAlignedT Description Initialize Iter with custom alignment to iterate in backward direction.
Read MoreIterInitRevFromVec
IterInitRevFromVec Description Initialize Iter from vector data to iterate in reverse direction.
Read MoreIterInitRevFromVecT
IterInitRevFromVecT Description Initialize Iter from vector data starting at back
Read MoreIterInitRevT
IterInitRevT Description Initialize default Iter object to iterate in backward direction.
Read MoreIterPeekAt
IterPeekAt Description Peek (not read) object from memory iter, given that - Provided Iter object is not NULL_ITER(mi). - There’s space left to read. - Length of object data is being read into is an integral multiple of size of data type this memory iter is iterating over. This is different from reading because it does not change current read position. This is good for making some decisions over data without changing the read position.
Read MoreIterRemainingLength
IterRemainingLength Description Get remaining length left to read this memory iterator.
Read MoreIterRemainingSize
IterRemainingSize Description Get remaining size left to read this memory iterator.
Read MoreNULL_ITER_DATA
NULL_ITER_DATA Description Type specific NULL for data type Iter object is iterating over. Use this instead of NULL when comparing for nullity of Iter objects of same type. Null value for Iter element pointers
Read MoreStrCmpCstr
StrCmpCstr Description Compare string with another const char* of specified length
Read MoreStrDeleteRange
StrDeleteRange Description Delete chars in given range [start, start + count)
Read MoreStrForeach
StrForeach Description Iterate over each character chr of the given Str str. This is a convenience macro that iterates forward using an internally managed index. The variable chr is declared and defined by the underlying VecForeach macro.
Read MoreStrForeachIdx
StrForeachIdx Description Iterate over each character chr of the given Str str at each index idx. This macro is a direct alias for VecForeachIdx specialized for Str. The variables chr and idx are declared and defined by the underlying macro.
Read MoreStrForeachInRange
StrForeachInRange Description Iterate over characters in a specific range of the given Str str. This is a convenience macro that iterates over a range using an internally managed index. The variable chr is declared and defined by the underlying VecForeachInRange macro.
Read MoreStrForeachInRangeIdx
StrForeachInRangeIdx Description Iterate over characters in a specific range of the given Str str at each index idx. This macro is a direct alias for VecForeachInRangeIdx specialized for Str. The variables chr and idx are declared and defined by the underlying macro.
Read MoreStrForeachPtr
StrForeachPtr Description Iterate over each character pointer chrptr of the given Str str. This is a convenience macro that iterates forward using an internally managed index and provides a pointer to each character. The variable chrptr is declared and defined by the underlying VecForeachPtr macro as a pointer to the character type.
Read MoreStrForeachPtrIdx
StrForeachPtrIdx Description Iterate over each character pointer chrptr of the given Str str at each index idx. This macro is a direct alias for VecForeachPtrIdx specialized for Str. The variables chrptr and idx are declared and defined by the underlying macro.
Read MoreStrForeachPtrInRange
StrForeachPtrInRange Description Iterate over characters in a specific range of the given Str str (as pointers). This is a convenience macro that iterates over a range using an internally managed index and provides a pointer to each character. The variable chrptr is declared and defined by the underlying VecForeachPtrInRange macro as a pointer to the character type.
Read MoreStrForeachPtrInRangeIdx
StrForeachPtrInRangeIdx Description Iterate over characters in a specific range of the given Str str at each index idx (as pointers). This macro is a direct alias for VecForeachPtrInRangeIdx specialized for Str. The variables chrptr and idx are declared and defined by the underlying macro.
Read MoreStrForeachPtrReverse
StrForeachPtrReverse Description Iterate over each character pointer chrptr of the given Str str in reverse order. This is a convenience macro that iterates backward using an internally managed index and provides a pointer to each character. The variable chrptr is declared and defined by the underlying VecForeachPtrReverse macro as a pointer to the character type.
Read MoreStrForeachReverse
StrForeachReverse Description Iterate over each character chr of the given Str str in reverse order. This is a convenience macro that iterates backward using an internally managed index. The variable chr is declared and defined by the underlying VecForeachReverse macro.
Read MoreStrForeachReverseIdx
StrForeachReverseIdx Description Iterate over each character chr of the given Str str in reverse order at each index idx. This macro is a direct alias for VecForeachReverseIdx specialized for Str. The variables chr and idx are declared and defined by the underlying macro.
Read MoreStrForeachReversePtrIdx
StrForeachReversePtrIdx Description Iterate over each character pointer chrptr of the given Str str in reverse order at each index idx. This macro is a direct alias for VecForeachPtrReverseIdx specialized for Str. The variables chrptr and idx are declared and defined by the underlying macro.
Read MoreStrInitFromZstr
StrInitFromZstr Description Initializes a Str object from a null-terminated C-style string (zstr). This macro calculates the length of zstr using strlen and then calls StrInitFromCstr to create the Str object.
Read MoreStrInitStack
StrInitStack Description Initialize given string but use memory from stack. Such strings cannot be dynamically resized!!
Read MoreStrInsertCharAt
StrInsertCharAt Description Insert char into string of it’s type. Insertion index must not exceed string length.
Read MoreStrInsertCstr
StrInsertCstr Description Insert a string of given length into given Str at given index.
Read MoreStrInsertZstr
StrInsertZstr Description Insert a zero-terminated string into given Str at given index.
Read MoreStrIterFromCstr
StrIterFromCstr Description Create string iterator from C string with explicit length
Read MoreStrIterFromZstr
StrIterFromZstr Description Create string iterator from null-terminated C string
Read MoreStrIterRemainingLength
StrIterRemainingLength Description Get remaining elements left to read
Read MoreStrMerge
StrMerge Description Merge two strings and store the result in first string. By default, this uses R-value semantics (preserves source string). Data is copied from str2 into str. If a copy_init method is provided in str, each element from str2 will be copied using that method. Otherwise, a raw memory copy is performed.
Read MoreStrPushBackCstr
StrPushBackCstr Description Push an array of chars with given length to the back of this string.
Read MoreStrPushBackZstr
StrPushBackZstr Description Push a null-terminated string to the back of string.
Read MoreStrPushCstr
StrPushCstr Description Push a array of characters with given length into this string at the given position.
Read MoreStrPushFrontCstr
StrPushFrontCstr Description Push a array of characters with given length to the front of this string
Read MoreStrPushFrontZstr
StrPushFrontZstr Description Push a null-terminated string to the front of this string.
Read MoreStrPushZstr
StrPushZstr Description Push a null-terminated string to this string at given position.
Read MoreStrReadFmt
StrReadFmt Description Parse input string according to format string with rust-style placeholders, extracting values into provided arguments. This is a macro wrapper around StrReadFmtInternal.
Read MoreStrRemoveRange
StrRemoveRange Description Remove data from string in given range [start, start + count)
Read MoreStrTryReduceSpace
StrTryReduceSpace Description Try reducing memory footprint of string. This is to be used when we know actual allocated memory for vec is large, and we won’t need it in future, so we can reduce it to whatever’s required at the moment.
Read MoreTO_BIG_ENDIAN2
TO_BIG_ENDIAN2 Description Conditionally converts value from native byte order to big-endian. On little-endian systems, this inverts the byte order. On big-endian systems, this is a no-op.
Read MoreTO_BIG_ENDIAN4
TO_BIG_ENDIAN4 Description Conditionally converts value from native byte order to big-endian. On little-endian systems, this inverts the byte order. On big-endian systems, this is a no-op.
Read MoreTO_BIG_ENDIAN8
TO_BIG_ENDIAN8 Description Conditionally converts value from native byte order to big-endian. On little-endian systems, this inverts the byte order. On big-endian systems, this is a no-op.
Read MoreTO_LITTLE_ENDIAN2
TO_LITTLE_ENDIAN2 Description Conditionally converts value from native byte order to little-endian. On big-endian systems, this inverts the byte order. On little-endian systems, this is a no-op.
Read MoreTO_LITTLE_ENDIAN4
TO_LITTLE_ENDIAN4 Description Conditionally converts value from native byte order to little-endian. On big-endian systems, this inverts the byte order. On little-endian systems, this is a no-op.
Read MoreTO_LITTLE_ENDIAN8
TO_LITTLE_ENDIAN8 Description Conditionally converts value from native byte order to little-endian. On big-endian systems, this inverts the byte order. On little-endian systems, this is a no-op.
Read MoreTO_NATIVE_ENDIAN2
TO_NATIVE_ENDIAN2 Description Maintains native endianness for 16-bit values. This is a no-op that returns the value unchanged.
Read MoreTO_NATIVE_ENDIAN4
TO_NATIVE_ENDIAN4 Description Maintains native endianness for 32-bit values. This is a no-op that returns the value unchanged.
Read MoreTO_NATIVE_ENDIAN8
TO_NATIVE_ENDIAN8 Description Maintains native endianness for 64-bit values. This is a no-op that returns the value unchanged.
Read MoreTRICK_PARENS
TRICK_PARENS Description Part of the parenthesis trick to delay text generation
Read MoreValidateIter
ValidateIter Description Validate whether a given Iter object is valid. Not foolproof but will work most of the time. Aborts if provided Iter is not valid.
Read MoreValidateStrIter
ValidateStrIter Description Validate whether a given StrIter object is valid. Not foolproof but will work most of the time. Aborts if provided StrIter is not valid.
Read MoreValidateStrIters
ValidateStrIters Description Validate whether a given StrIters object is valid. Not foolproof but will work most of the time. Aborts if provided StrIters is not valid.
Read MoreWriteFmtLn
WriteFmtLn Description Write formatted output to the standard output stream (stdout) followed by a newline. This is a convenience macro calling FWriteFmtLn with stdout.
Read More