lib/yajl: use std::span instead of ConstBuffer

This commit is contained in:
Max Kellermann 2022-07-04 18:34:11 +02:00
parent 020c9b41cc
commit baff5e5594
3 changed files with 5 additions and 7 deletions

View File

@ -30,11 +30,10 @@
#ifndef YAJL_GEN_HXX #ifndef YAJL_GEN_HXX
#define YAJL_GEN_HXX #define YAJL_GEN_HXX
#include "util/ConstBuffer.hxx"
#include <yajl/yajl_gen.h> #include <yajl/yajl_gen.h>
#include <algorithm> #include <algorithm>
#include <span>
#include <string_view> #include <string_view>
namespace Yajl { namespace Yajl {
@ -89,12 +88,12 @@ public:
yajl_gen_array_close(gen); yajl_gen_array_close(gen);
} }
ConstBuffer<char> GetBuffer() const noexcept { std::span<const char> GetBuffer() const noexcept {
const unsigned char *buf; const unsigned char *buf;
size_t len; size_t len;
auto status = yajl_gen_get_buf(gen, &buf, &len); auto status = yajl_gen_get_buf(gen, &buf, &len);
if (status != yajl_gen_status_ok) if (status != yajl_gen_status_ok)
return nullptr; return {};
return {(const char *)buf, len}; return {(const char *)buf, len};
} }

View File

@ -28,7 +28,6 @@
*/ */
#include "ResponseParser.hxx" #include "ResponseParser.hxx"
#include "util/ConstBuffer.hxx"
void void
YajlResponseParser::OnData(std::span<const std::byte> data) YajlResponseParser::OnData(std::span<const std::byte> data)

View File

@ -30,6 +30,7 @@
#include "event/Call.hxx" #include "event/Call.hxx"
#include "util/Domain.hxx" #include "util/Domain.hxx"
#include "util/DeleteDisposer.hxx" #include "util/DeleteDisposer.hxx"
#include "util/SpanCast.hxx"
#include "config/Net.hxx" #include "config/Net.hxx"
#ifdef HAVE_ZEROCONF #ifdef HAVE_ZEROCONF
@ -277,8 +278,7 @@ ToJson(const Tag &tag) noexcept
gen.CloseMap(); gen.CloseMap();
const auto result = gen.GetBuffer(); return std::string{ToStringView(gen.GetBuffer())};
return {(const char *)result.data, result.size};
} }
#endif #endif