From a8b3d08c3ad761b65bef0cf78fdcfbd6d3570f90 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Tue, 17 Oct 2017 00:50:07 -0700 Subject: [PATCH] ircd::buffer: Add null()/empty() participation. --- include/ircd/buffer.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/include/ircd/buffer.h b/include/ircd/buffer.h index 467dc0d5b..796496667 100644 --- a/include/ircd/buffer.h +++ b/include/ircd/buffer.h @@ -81,6 +81,9 @@ namespace ircd::buffer template it rend(const buffer &buffer); // Single buffer tools + template bool null(const buffer &buffer); + template bool empty(const buffer &buffer); + template bool operator!(const buffer &buffer); template size_t size(const buffer &buffer); template const it &data(const buffer &buffer); template size_t consume(buffer &buffer, const size_t &bytes); @@ -569,6 +572,27 @@ ircd::buffer::size(const buffer &buffer) return std::distance(get<0>(buffer), get<1>(buffer)); } +template +bool +ircd::buffer::operator!(const buffer &buffer) +{ + return empty(buffer); +} + +template +bool +ircd::buffer::empty(const buffer &buffer) +{ + return null(buffer) || !std::distance(get<0>(buffer), get<1>(buffer)); +} + +template +bool +ircd::buffer::null(const buffer &buffer) +{ + return get<0>(buffer) == nullptr; +} + template it ircd::buffer::rend(const buffer &buffer)