Skip to content

Latest commit

 

History

History
78 lines (69 loc) · 2.58 KB

README.md

File metadata and controls

78 lines (69 loc) · 2.58 KB

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 types
  • valueNb instead of value
  • brief syntax
  • serializer/deserializer functions overloads
  • extending library functionality
  • errors handling
  • forward/backward compatibility via Growable extension
  • pointers
  • 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) 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. if currentyWritePos (set) jumps from 0 to 100, and then 4 bytes are written, writtenBytesCount return 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: