xref: /aosp_15_r20/external/pigweed/pw_varint/docs.rst (revision 61c4878ac05f98d0ceed94b57d316916de578985)
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