#ifndef C_API_STD_MSGS_HEADER_H
#define C_API_STD_MSGS_HEADER_H

#ifdef __cplusplus
extern "C"
{
#endif
#include <stdbool.h>
#include <stdint.h>
#include <stddef.h>

  typedef struct
  {
    uint32_t seq;
    uint32_t sec;
    uint32_t nsec;
    char *frame_id;
  } Header;

  /**
   * @brief Create a new header
   * @param frame_id Frame id
   * @return Header
   */
  Header header_create(const char *frame_id);

  /**
   * @brief Set data for a header
   * @param header Header
   * @param seq Sequence
   * @param sec Second
   * @param nsec Nanosecond
   * @param frame_id Frame id
   * @return Header
   */
  Header header_set_data(
    uint32_t seq,
    uint32_t sec,
    uint32_t nsec,
    char *frame_id);
#ifdef __cplusplus
}
#endif

#endif // C_API_STD_MSGS_HEADER_H