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