28 lines
901 B
Markdown
28 lines
901 B
Markdown
|
|
[← Utils](../README.md)
|
||
|
|
|
||
|
|
# Utils/Bits
|
||
|
|
|
||
|
|
Bit manipulation, fast serialization buffers, and hashing support used by the ecosystem's hash maps.
|
||
|
|
|
||
|
|
## Main features
|
||
|
|
- Fast write-oriented bit buffer: booleans, integers, arrays, doubles, floats, padded strings (`CBitBuffer` in `BitFastBuffer.mqh`).
|
||
|
|
- Little-endian / big-endian byte (de)serialization (`FromBytesLE`, `FromBytesBE`, `ToBytes`).
|
||
|
|
- Generic hash + equality implementation for `CBitBuffer`, so it can be used as a key in `TSN` hash maps (`TSN::CGenericHash_CBitBuffer` in `Hash.mqh`, built on XXH64).
|
||
|
|
|
||
|
|
## Basic usage
|
||
|
|
```mql5
|
||
|
|
CBitBuffer bit;
|
||
|
|
bit.WriteBool(true);
|
||
|
|
bit.WriteInteger(42);
|
||
|
|
bit.WriteDouble(3.14);
|
||
|
|
|
||
|
|
uchar buf[];
|
||
|
|
int written = bit.ToBytes(buf);
|
||
|
|
```
|
||
|
|
|
||
|
|
```mql5
|
||
|
|
// Using CBitBuffer as a hash map key:
|
||
|
|
TSN::CHashMapFastNor<TSN::CBitBuffer, int, TSN::CGenericHash_CBitBuffer> cache;
|
||
|
|
```
|
||
|
|
|
||
|
|
> Only the most representative methods are shown here.
|