table of contents
- experimental 1.5.0-1
include/Zycore/Bitset.h(3) | Library Functions Manual | include/Zycore/Bitset.h(3) |
NAME¶
include/Zycore/Bitset.h
SYNOPSIS¶
#include <Zycore/Allocator.h>
#include <Zycore/Status.h>
#include <Zycore/Types.h>
#include <Zycore/Vector.h>
Classes¶
struct ZyanBitset_
Typedefs¶
typedef struct ZyanBitset_ ZyanBitset
typedef ZyanStatus(* ZyanBitsetByteOperation) (ZyanU8 *v1, const
ZyanU8 *v2)
Functions¶
ZYCORE_EXPORT ZYAN_REQUIRES_LIBC ZyanStatus
ZyanBitsetInit (ZyanBitset *bitset, ZyanUSize count)
ZYCORE_EXPORT ZyanStatus ZyanBitsetInitEx
(ZyanBitset *bitset, ZyanUSize count, ZyanAllocator
*allocator, ZyanU8 growth_factor, ZyanU8 shrink_threshold)
ZYCORE_EXPORT ZyanStatus ZyanBitsetInitBuffer
(ZyanBitset *bitset, ZyanUSize count, void *buffer, ZyanUSize
capacity)
ZYCORE_EXPORT ZyanStatus ZyanBitsetDestroy
(ZyanBitset *bitset)
ZYCORE_EXPORT ZyanStatus ZyanBitsetPerformByteOperation
(ZyanBitset *destination, const ZyanBitset *source,
ZyanBitsetByteOperation operation)
ZYCORE_EXPORT ZyanStatus ZyanBitsetAND (ZyanBitset
*destination, const ZyanBitset *source)
ZYCORE_EXPORT ZyanStatus ZyanBitsetOR (ZyanBitset
*destination, const ZyanBitset *source)
ZYCORE_EXPORT ZyanStatus ZyanBitsetXOR (ZyanBitset
*destination, const ZyanBitset *source)
ZYCORE_EXPORT ZyanStatus ZyanBitsetFlip
(ZyanBitset *bitset)
ZYCORE_EXPORT ZyanStatus ZyanBitsetSet (ZyanBitset
*bitset, ZyanUSize index)
ZYCORE_EXPORT ZyanStatus ZyanBitsetReset
(ZyanBitset *bitset, ZyanUSize index)
ZYCORE_EXPORT ZyanStatus ZyanBitsetAssign
(ZyanBitset *bitset, ZyanUSize index, ZyanBool value)
ZYCORE_EXPORT ZyanStatus ZyanBitsetToggle
(ZyanBitset *bitset, ZyanUSize index)
ZYCORE_EXPORT ZyanStatus ZyanBitsetTest
(ZyanBitset *bitset, ZyanUSize index)
ZYCORE_EXPORT ZyanStatus ZyanBitsetTestMSB
(ZyanBitset *bitset)
ZYCORE_EXPORT ZyanStatus ZyanBitsetTestLSB
(ZyanBitset *bitset)
ZYCORE_EXPORT ZyanStatus ZyanBitsetSetAll
(ZyanBitset *bitset)
ZYCORE_EXPORT ZyanStatus ZyanBitsetResetAll
(ZyanBitset *bitset)
ZYCORE_EXPORT ZyanStatus ZyanBitsetPush
(ZyanBitset *bitset, ZyanBool value)
ZYCORE_EXPORT ZyanStatus ZyanBitsetPop (ZyanBitset
*bitset)
ZYCORE_EXPORT ZyanStatus ZyanBitsetClear
(ZyanBitset *bitset)
ZYCORE_EXPORT ZyanStatus ZyanBitsetReserve
(ZyanBitset *bitset, ZyanUSize count)
ZYCORE_EXPORT ZyanStatus ZyanBitsetShrinkToFit
(ZyanBitset *bitset)
ZYCORE_EXPORT ZyanStatus ZyanBitsetGetSize (const
ZyanBitset *bitset, ZyanUSize *size)
ZYCORE_EXPORT ZyanStatus ZyanBitsetGetCapacity (const
ZyanBitset *bitset, ZyanUSize *capacity)
ZYCORE_EXPORT ZyanStatus ZyanBitsetGetSizeBytes (const
ZyanBitset *bitset, ZyanUSize *size)
ZYCORE_EXPORT ZyanStatus ZyanBitsetGetCapacityBytes
(const ZyanBitset *bitset, ZyanUSize *capacity)
ZYCORE_EXPORT ZyanStatus ZyanBitsetCount (const
ZyanBitset *bitset, ZyanUSize *count)
ZYCORE_EXPORT ZyanStatus ZyanBitsetAll (const
ZyanBitset *bitset)
ZYCORE_EXPORT ZyanStatus ZyanBitsetAny (const
ZyanBitset *bitset)
ZYCORE_EXPORT ZyanStatus ZyanBitsetNone (const
ZyanBitset *bitset)
Detailed Description¶
Implements the bitset class.
Typedef Documentation¶
typedef struct ZyanBitset_ ZyanBitset¶
Defines the ZyanVector struct.
All fields in this struct should be considered as 'private'. Any changes may lead to unexpected behavior.
typedef ZyanStatus(* ZyanBitsetByteOperation) (ZyanU8 *v1, const ZyanU8 *v2)¶
Defines the ZyanBitsetByteOperation function prototype.
Parameters
v2 A pointer to the second byte.
Returns
This function is used to perform byte-wise operations on two ZyanBitset instances.
Function Documentation¶
ZYCORE_EXPORT ZyanStatus ZyanBitsetAll (const ZyanBitset * bitset)¶
Checks, if all bits of the given bitset are set.
Parameters
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetAND (ZyanBitset * destination, const ZyanBitset * source)¶
Performs a logical AND operation on the given ZyanBitset instances.
Parameters
source A pointer to the ZyanBitset instance that is used as the second input.
Returns
If the destination bitmask contains more bits than the source one, the state of the remaining bits will be undefined.
ZYCORE_EXPORT ZyanStatus ZyanBitsetAny (const ZyanBitset * bitset)¶
Checks, if at least one bit of the given bitset is set.
Parameters
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetAssign (ZyanBitset * bitset, ZyanUSize index, ZyanBool value)¶
Sets the bit at index of the given ZyanBitset instance to the specified value.
Parameters
index The bit index.
value The new value.
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetClear (ZyanBitset * bitset)¶
Deletes all bits of the given ZyanBitset instance.
Parameters
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetCount (const ZyanBitset * bitset, ZyanUSize * count)¶
Returns the amount of bits set in the given bitset.
Parameters
count Receives the amount of bits set in the given bitset.
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetDestroy (ZyanBitset * bitset)¶
Destroys the given ZyanBitset instance.
Parameters
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetFlip (ZyanBitset * bitset)¶
Flips all bits of the given ZyanBitset instance.
Parameters
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetGetCapacity (const ZyanBitset * bitset, ZyanUSize * capacity)¶
Returns the current capacity of the bitset in bits.
Parameters
capacity Receives the size of the bitset in bits.
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetGetCapacityBytes (const ZyanBitset * bitset, ZyanUSize * capacity)¶
Returns the current capacity of the bitset in bytes.
Parameters
capacity Receives the size of the bitset in bytes.
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetGetSize (const ZyanBitset * bitset, ZyanUSize * size)¶
Returns the current size of the bitset in bits.
Parameters
size Receives the size of the bitset in bits.
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetGetSizeBytes (const ZyanBitset * bitset, ZyanUSize * size)¶
Returns the current size of the bitset in bytes.
Parameters
size Receives the size of the bitset in bytes.
Returns
ZYCORE_EXPORT ZYAN_REQUIRES_LIBC ZyanStatus ZyanBitsetInit (ZyanBitset * bitset, ZyanUSize count)¶
Initializes the given ZyanBitset instance.
Parameters
count The initial amount of bits.
Returns
The space for the bitset is dynamically allocated by the default allocator using the default growth factor and the default shrink threshold.
ZYCORE_EXPORT ZyanStatus ZyanBitsetInitBuffer (ZyanBitset * bitset, ZyanUSize count, void * buffer, ZyanUSize capacity)¶
Initializes the given ZyanBitset instance and configures it to use a custom user defined buffer with a fixed size.
Parameters
count The initial amount of bits.
buffer A pointer to the buffer that is used as storage for the bits.
capacity The maximum capacity (number of bytes) of the buffer.
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetInitEx (ZyanBitset * bitset, ZyanUSize count, ZyanAllocator * allocator, ZyanU8 growth_factor, ZyanU8 shrink_threshold)¶
Initializes the given ZyanBitset instance and sets a custom allocator and memory allocation/deallocation parameters.
Parameters
count The initial amount of bits.
allocator A pointer to a ZyanAllocator instance.
growth_factor The growth factor.
shrink_threshold The shrink threshold.
Returns
A growth factor of 1 disables overallocation and a shrink threshold of 0 disables dynamic shrinking.
ZYCORE_EXPORT ZyanStatus ZyanBitsetNone (const ZyanBitset * bitset)¶
Checks, if none bits of the given bitset are set.
Parameters
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetOR (ZyanBitset * destination, const ZyanBitset * source)¶
Performs a logical OR operation on the given ZyanBitset instances.
Parameters
source A pointer to the ZyanBitset instance that is used as the second input.
Returns
If the destination bitmask contains more bits than the source one, the state of the remaining bits will be undefined.
ZYCORE_EXPORT ZyanStatus ZyanBitsetPerformByteOperation (ZyanBitset * destination, const ZyanBitset * source, ZyanBitsetByteOperation operation)¶
Performs a byte-wise operation for every byte in the given ZyanBitset instances.
Parameters
source A pointer to the ZyanBitset instance that is used as the second input.
operation A pointer to the function that performs the desired operation.
Returns
The operation callback is invoked once for every byte in the smallest of the ZyanBitset instances.
ZYCORE_EXPORT ZyanStatus ZyanBitsetPop (ZyanBitset * bitset)¶
Removes the last bit of the bitset.
Parameters
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetPush (ZyanBitset * bitset, ZyanBool value)¶
Adds a new bit at the end of the bitset.
Parameters
value The value of the new bit.
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetReserve (ZyanBitset * bitset, ZyanUSize count)¶
Changes the capacity of the given ZyanBitset instance.
Parameters
count The new capacity (number of bits).
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetReset (ZyanBitset * bitset, ZyanUSize index)¶
Sets the bit at index of the given ZyanBitset instance to 0.
Parameters
index The bit index.
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetResetAll (ZyanBitset * bitset)¶
Sets all bits of the given ZyanBitset instance to 0.
Parameters
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetSet (ZyanBitset * bitset, ZyanUSize index)¶
Sets the bit at index of the given ZyanBitset instance to 1.
Parameters
index The bit index.
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetSetAll (ZyanBitset * bitset)¶
Sets all bits of the given ZyanBitset instance to 1.
Parameters
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetShrinkToFit (ZyanBitset * bitset)¶
Shrinks the capacity of the given bitset to match it's size.
Parameters
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetTest (ZyanBitset * bitset, ZyanUSize index)¶
Returns the value of the bit at index.
Parameters
index The bit index.
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetTestLSB (ZyanBitset * bitset)¶
Returns the value of the least significant bit.
Parameters
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetTestMSB (ZyanBitset * bitset)¶
Returns the value of the most significant bit.
Parameters
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetToggle (ZyanBitset * bitset, ZyanUSize index)¶
Toggles the bit at index of the given ZyanBitset instance.
Parameters
index The bit index.
Returns
ZYCORE_EXPORT ZyanStatus ZyanBitsetXOR (ZyanBitset * destination, const ZyanBitset * source)¶
Performs a logical XOR operation on the given ZyanBitset instances.
Parameters
source A pointer to the ZyanBitset instance that is used as the second input.
Returns
If the destination bitmask contains more bits than the source one, the state of the remaining bits will be undefined.
Author¶
Generated automatically by Doxygen for Zycore from the source code.
Version 1.5.0.0 | Zycore |