1*61c4878aSAndroid Build Coastguard Worker.. _module-pw_varint: 2*61c4878aSAndroid Build Coastguard Worker 3*61c4878aSAndroid Build Coastguard Worker========= 4*61c4878aSAndroid Build Coastguard Workerpw_varint 5*61c4878aSAndroid Build Coastguard Worker========= 6*61c4878aSAndroid Build Coastguard Worker.. pigweed-module:: 7*61c4878aSAndroid Build Coastguard Worker :name: pw_varint 8*61c4878aSAndroid Build Coastguard Worker 9*61c4878aSAndroid Build Coastguard Worker.. doxygenfile:: pw_varint/varint.h 10*61c4878aSAndroid Build Coastguard Worker :sections: detaileddescription 11*61c4878aSAndroid Build Coastguard Worker 12*61c4878aSAndroid Build Coastguard Worker------------- 13*61c4878aSAndroid Build Coastguard WorkerCompatibility 14*61c4878aSAndroid Build Coastguard Worker------------- 15*61c4878aSAndroid Build Coastguard Worker* C 16*61c4878aSAndroid Build Coastguard Worker* C++ 17*61c4878aSAndroid Build Coastguard Worker* `Rust </rustdoc/pw_varint>`_ 18*61c4878aSAndroid Build Coastguard Worker 19*61c4878aSAndroid Build Coastguard Worker------------- 20*61c4878aSAndroid Build Coastguard WorkerAPI Reference 21*61c4878aSAndroid Build Coastguard Worker------------- 22*61c4878aSAndroid Build Coastguard Worker 23*61c4878aSAndroid Build Coastguard Worker.. _module-pw_varint-api-c: 24*61c4878aSAndroid Build Coastguard Worker 25*61c4878aSAndroid Build Coastguard WorkerC 26*61c4878aSAndroid Build Coastguard Worker= 27*61c4878aSAndroid Build Coastguard Worker.. doxygendefine:: PW_VARINT_MAX_INT32_SIZE_BYTES 28*61c4878aSAndroid Build Coastguard Worker.. doxygendefine:: PW_VARINT_MAX_INT64_SIZE_BYTES 29*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw_varint_Encode32 30*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw_varint_Encode64 31*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw_varint_Decode32 32*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw_varint_Decode64 33*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw_varint_ZigZagEncode32 34*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw_varint_ZigZagEncode64 35*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw_varint_ZigZagDecode32 36*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw_varint_ZigZagDecode64 37*61c4878aSAndroid Build Coastguard Worker.. doxygendefine:: PW_VARINT_ENCODED_SIZE_BYTES 38*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw_varint_EncodedSizeBytes 39*61c4878aSAndroid Build Coastguard Worker.. doxygenenum:: pw_varint_Format 40*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw_varint_EncodeCustom 41*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw_varint_DecodeCustom 42*61c4878aSAndroid Build Coastguard Worker 43*61c4878aSAndroid Build Coastguard WorkerC++ 44*61c4878aSAndroid Build Coastguard Worker=== 45*61c4878aSAndroid Build Coastguard Worker.. doxygenvariable:: pw::varint::kMaxVarint32SizeBytes 46*61c4878aSAndroid Build Coastguard Worker.. doxygenvariable:: pw::varint::kMaxVarint64SizeBytes 47*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::varint::ZigZagEncode 48*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::varint::ZigZagDecode 49*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::varint::EncodedSize 50*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::varint::EncodeLittleEndianBase128 51*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::varint::Encode(T integer, const span<std::byte> &output) 52*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::varint::Decode(const span<const std::byte>& input, int64_t* output) 53*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::varint::Decode(const span<const std::byte>& input, uint64_t* output) 54*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::varint::MaxValueInBytes(size_t bytes) 55*61c4878aSAndroid Build Coastguard Worker.. doxygenenum:: pw::varint::Format 56*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::varint::Encode(uint64_t value, span<std::byte> output, Format format) 57*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::varint::Decode(span<const std::byte> input, uint64_t* value, Format format) 58*61c4878aSAndroid Build Coastguard Worker 59*61c4878aSAndroid Build Coastguard WorkerStream API 60*61c4878aSAndroid Build Coastguard Worker---------- 61*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::varint::Read(stream::Reader& reader, uint64_t* output, size_t max_size) 62*61c4878aSAndroid Build Coastguard Worker.. doxygenfunction:: pw::varint::Read(stream::Reader& reader, int64_t* output, size_t max_size) 63*61c4878aSAndroid Build Coastguard Worker 64*61c4878aSAndroid Build Coastguard WorkerRust 65*61c4878aSAndroid Build Coastguard Worker==== 66*61c4878aSAndroid Build Coastguard Worker``pw_varint``'s Rust API is documented in our 67*61c4878aSAndroid Build Coastguard Worker`rustdoc API docs </rustdoc/pw_varint>`_. 68*61c4878aSAndroid Build Coastguard Worker 69*61c4878aSAndroid Build Coastguard Worker------ 70*61c4878aSAndroid Build Coastguard WorkerZephyr 71*61c4878aSAndroid Build Coastguard Worker------ 72*61c4878aSAndroid Build Coastguard WorkerTo enable ``pw_varint`` for Zephyr add ``CONFIG_PIGWEED_VARINT=y`` to the 73*61c4878aSAndroid Build Coastguard Workerproject's configuration. 74