mirror of
https://github.com/fraillt/bitsery.git
synced 2026-06-08 08:13:56 +00:00
To get the most out of Bitsery, start with the tutorial. Once you're familiar with the library consider the following reference material.
Library design:
fundamental typesvalueNb instead of valuebrief syntaxserializer/deserializer functions overloads- extending library functionality
errors handlingforward/backward compatibility via Growable extension- pointers
inheritancepolymorphism
Core Serializer/Deserializer functions (alphabetical order):
operator()(4.6.1) (when brief syntax is enabled)adapter(5.0.0)boolValue(4.0.0)context<T>(4.1.0)contextOrNull<T>(4.2.0)enableBitPacking(4.0.0)ext(2.0.0)object(1.0.0)text(1.0.0)value(1.0.0)
Serializer/Deserializer extensions via ext method (alphabetical order):
BaseClass(4.2.0)CompactValue(4.4.0)CompactValueAsObject(4.4.0)Entropy(3.0.0)Growable(3.0.0)PointerOwner(4.1.0)PointerObserver(4.1.0)ReferencedByPointer(4.1.0)StdDuration(4.6.0)StdMap(3.0.0)StdOptional(2.0.0)StdQueue(4.0.0)StdSet(4.0.0)StdSmartPrt(4.3.0)StdStack(4.0.0)StdTimePoint(4.6.0)StdTuple(4.6.0) (requires c++17)StdVariant(4.6.0) (requires c++17)ValueRange(3.0.0)VirtualBaseClass(4.2.0)
Input adapters (buffer and stream) functions:
alignreadBitsreadBytesreadBuffercurrentReadPos (get/set)(buffer adapter only)currentReadEndPos (get/set)(buffer adapter only)error (get/set)isCompletedSuccessfully
Output adapters (buffer and stream) functions:
alignwriteBitswriteByteswriteBufferflushcurrentyWritePos (get/set)(buffer adapter only) gets/sets write position in buffer, it can jump past the buffer end, in this case buffer will be resized. This function doesn't write any bytes.writtenBytesCount(buffer adapter only) this doesn't necessary mean how many bytes are written, but rather how many bytes in the buffer was "affected" during serialization. E.g. ifcurrentyWritePos(set) jumps from 0 to 100, and then 4 bytes are written,writtenBytesCountreturn 104, it also returns 104 if you jump in somewhere in the middle.
Tips and tricks:
- if you're getting static assert "please define 'serialize' function", please define serialize function in same namespace as object, or in bitsery namespace, for more info ADL.
Other: