Files
bitsery/doc/README.md
2019-07-05 14:18:27 +03:00

77 lines
2.1 KiB
Markdown

To get the most out of **Bitsery**, start with the [tutorial](tutorial/README.md).
Once you're familiar with the library consider the following reference material.
Library design:
* `fundamental types`
* `valueNb instead of value`
* `brief syntax`
* `serializer/deserializer functions overloads`
* `extending library functionality`
* `errors handling`
* `forward/backward compatibility via Growable extension`
* [pointers](design/pointers.md)
* `inheritance`
* `polymorphism`
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:
* `align`
* `readBits`
* `readBytes`
* `readBuffer`
* `currentReadPos (get/set)` (buffer adapter only)
* `currentReadEndPos (get/set)` (buffer adapter only)
* `error (get/set)`
* `isCompletedSuccessfully`
Output adapters (buffer and stream) functions:
* `align`
* `writeBits`
* `writeBytes`
* `writeBuffer`
* `flush`
* `currentyWritePos (get/set)` (buffer adapter only)
* `writtenBytesCount` (buffer adapter only)
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](https://en.cppreference.com/w/cpp/language/adl).
Other:
* [Contributing](../CONTRIBUTING.md)
* [Change log](../CHANGELOG.md)