Struct UnsafeBitArray.ReadOnly
A read-only alias for the value of a UnsafeBitArray. Does not have its own allocated storage.
Namespace: Unity.Collections.LowLevel.Unsafe
Assembly: Unity.Collections.dll
Syntax
public struct UnsafeBitArray.ReadOnly
Fields
Length
The number of bits.
Declaration
public readonly int Length
Field Value
Type | Description |
---|---|
int | The number of bits. |
Ptr
Pointer to the data.
Declaration
[NativeDisableUnsafePtrRestriction]
public readonly ulong* Ptr
Field Value
Type | Description |
---|---|
ulong* | Pointer to the data. |
Methods
CountBits(int, int)
Returns the number of bits in a range that are 1.
Declaration
public readonly int CountBits(int pos, int numBits = 1)
Parameters
Type | Name | Description |
---|---|---|
int | pos | Index of the bit at which to start searching. |
int | numBits | Number of bits to test. Defaults to 1. |
Returns
Type | Description |
---|---|
int | The number of bits in a range of bits that are 1. |
Exceptions
Type | Condition |
---|---|
ArgumentException | Thrown if |
Find(int, int)
Returns the index of the first occurrence in this array of N contiguous 0 bits.
Declaration
public readonly int Find(int pos, int numBits)
Parameters
Type | Name | Description |
---|---|---|
int | pos | Index of the bit at which to start searching. |
int | numBits | Number of contiguous 0 bits to look for. |
Returns
Type | Description |
---|---|
int | The index of the first occurrence in this array of |
Remarks
The search is linear.
Find(int, int, int)
Returns the index of the first occurrence in this array of a given number of contiguous 0 bits.
Declaration
public readonly int Find(int pos, int count, int numBits)
Parameters
Type | Name | Description |
---|---|---|
int | pos | Index of the bit at which to start searching. |
int | count | Number of indexes to consider as the return value. |
int | numBits | Number of contiguous 0 bits to look for. |
Returns
Type | Description |
---|---|
int | The index of the first occurrence in this array of |
Remarks
The search is linear.
GetBits(int, int)
Returns a ulong which has bits copied from this array.
Declaration
public readonly ulong GetBits(int pos, int numBits = 1)
Parameters
Type | Name | Description |
---|---|---|
int | pos | Index of the first bit to get. |
int | numBits | Number of bits to get (must be between 1 and 64). |
Returns
Type | Description |
---|---|
ulong | A ulong which has bits copied from this array. |
Remarks
The source bits in this array run from index pos
up to (but not including) pos + numBits
.
No exception is thrown if pos + numBits
exceeds the length.
The first source bit is copied to the lowest bit of the ulong; the second source bit is copied to the second-lowest bit of the ulong; and so forth. Any remaining bits in the ulong will be 0.
Exceptions
Type | Condition |
---|---|
ArgumentException | Thrown if pos is out of bounds or if numBits is not between 1 and 64. |
IsSet(int)
Returns true if the bit at an index is 1.
Declaration
public readonly bool IsSet(int pos)
Parameters
Type | Name | Description |
---|---|---|
int | pos | Index of the bit to test. |
Returns
Type | Description |
---|---|
bool | True if the bit at the index is 1. |
Exceptions
Type | Condition |
---|---|
ArgumentException | Thrown if |