diff options
Diffstat (limited to 'pw_tokenizer/encode_args.cc')
-rw-r--r-- | pw_tokenizer/encode_args.cc | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/pw_tokenizer/encode_args.cc b/pw_tokenizer/encode_args.cc index ccd5c61f8..444afb73a 100644 --- a/pw_tokenizer/encode_args.cc +++ b/pw_tokenizer/encode_args.cc @@ -32,15 +32,15 @@ enum class ArgType : uint8_t { kString = PW_TOKENIZER_ARG_TYPE_STRING, }; -size_t EncodeInt(int value, const std::span<std::byte>& output) { - return varint::Encode(value, std::as_writable_bytes(output)); +size_t EncodeInt(int value, const span<std::byte>& output) { + return varint::Encode(value, as_writable_bytes(output)); } -size_t EncodeInt64(int64_t value, const std::span<std::byte>& output) { - return varint::Encode(value, std::as_writable_bytes(output)); +size_t EncodeInt64(int64_t value, const span<std::byte>& output) { + return varint::Encode(value, as_writable_bytes(output)); } -size_t EncodeFloat(float value, const std::span<std::byte>& output) { +size_t EncodeFloat(float value, const span<std::byte>& output) { if (output.size() < sizeof(value)) { return 0; } @@ -48,7 +48,7 @@ size_t EncodeFloat(float value, const std::span<std::byte>& output) { return sizeof(value); } -size_t EncodeString(const char* string, const std::span<std::byte>& output) { +size_t EncodeString(const char* string, const span<std::byte>& output) { // The top bit of the status byte indicates if the string was truncated. static constexpr size_t kMaxStringLength = 0x7Fu; @@ -86,7 +86,7 @@ size_t EncodeString(const char* string, const std::span<std::byte>& output) { size_t EncodeArgs(pw_tokenizer_ArgTypes types, va_list args, - std::span<std::byte> output) { + span<std::byte> output) { size_t arg_count = types & PW_TOKENIZER_TYPE_COUNT_MASK; types >>= PW_TOKENIZER_TYPE_COUNT_SIZE_BITS; @@ -126,5 +126,15 @@ size_t EncodeArgs(pw_tokenizer_ArgTypes types, return encoded_bytes; } +extern "C" size_t pw_tokenizer_EncodeArgs(pw_tokenizer_ArgTypes types, + va_list args, + void* output_buffer, + size_t output_buffer_size) { + return EncodeArgs(types, + args, + span<std::byte>(static_cast<std::byte*>(output_buffer), + output_buffer_size)); +} + } // namespace tokenizer } // namespace pw |