.. default-domain:: cpp

.. highlight:: sh

-----------
pw_checksum
-----------
The ``pw_checksum`` module provides functions for calculating checksums.

pw_checksum/crc16_ccitt.h
=========================

.. cpp:namespace:: pw::checksum

.. cpp:var:: constexpr uint16_t kCcittCrc16DefaultInitialValue = 0xFFFF

  The default initial value for the CRC16.

.. cpp:function:: uint16_t CcittCrc16(span<const std::byte> data, uint16_t initial_value = kCcittCrc16DefaultInitialValue)

  Calculates the CRC16 of the provided data using polynomial 0x1021, with a
  default initial value of :cpp:expr:`0xFFFF`.

  To incrementally calculate a CRC16, use the previous value as the initial
  value.

  .. code-block:: cpp

    uint16_t crc = CcittCrc16(my_data);

    crc  = CcittCrc16(more_data, crc);

pw_checksum/crc32.h
===================

.. cpp:var:: constexpr uint32_t kCrc32InitialValue = 0xFFFFFFFF

  The initial value for the CRC32.

.. cpp:function:: uint32_t Crc32(span<const std::byte> data)

  Calculates the initial / one-time CRC32 of the provided data using polynomial
  0x4C11DB7, with an initial value of :cpp:expr:`0xFFFFFFFF`.

  .. code-block:: cpp

    uint32_t crc = Crc32(my_data);

.. cpp:function:: uint32_t Crc32(span<const std::byte> data, uint32_t previous_result)

  Incrementally append calculation of a CRC32, need to pass in the previous
  result.

  .. code-block:: cpp

    uint32_t crc = Crc32(my_data);
    crc = Crc32(more_data, crc);

Compatibility
=============
* C
* C++17

Dependencies
============
* ``pw_span``
