16#include "pw_log/levels.h"
17#include "pw_log/options.h"
18#include "pw_polyfill/static_assert.h"
19#include "pw_tokenizer/config.h"
31#ifndef PW_LOG_TOKENIZED_ENCODING_BUFFER_SIZE_BYTES
32#define PW_LOG_TOKENIZED_ENCODING_BUFFER_SIZE_BYTES \
33 PW_TOKENIZER_CFG_ENCODING_BUFFER_SIZE_BYTES
38#ifndef PW_LOG_TOKENIZED_FORMAT_STRING
40#define _PW_LOG_TOKENIZED_FIELD(name, contents) "■" name "♦" contents
47#define PW_LOG_TOKENIZED_FORMAT_STRING(module, message) \
48 _PW_LOG_TOKENIZED_FIELD("msg", message) \
49 _PW_LOG_TOKENIZED_FIELD("module", module) \
50 _PW_LOG_TOKENIZED_FIELD("file", __FILE__)
61#ifndef PW_LOG_TOKENIZED_LEVEL_BITS
62#define PW_LOG_TOKENIZED_LEVEL_BITS PW_LOG_LEVEL_BITS
79#ifndef PW_LOG_TOKENIZED_LINE_BITS
80#define PW_LOG_TOKENIZED_LINE_BITS 11
84#ifndef PW_LOG_TOKENIZED_FLAG_BITS
85#define PW_LOG_TOKENIZED_FLAG_BITS 2
91#ifndef PW_LOG_TOKENIZED_MODULE_BITS
92#define PW_LOG_TOKENIZED_MODULE_BITS 16
95static_assert((PW_LOG_TOKENIZED_LEVEL_BITS + PW_LOG_TOKENIZED_LINE_BITS +
96 PW_LOG_TOKENIZED_FLAG_BITS + PW_LOG_TOKENIZED_MODULE_BITS) == 32,
97 "Log metadata fields must use 32 bits");
103namespace pw::log_tokenized {
106inline constexpr size_t kEncodingBufferSizeBytes =
107 PW_LOG_TOKENIZED_ENCODING_BUFFER_SIZE_BYTES;