diff --git a/include/ircd/base.h b/include/ircd/base.h index 6800651b2..61bb74906 100644 --- a/include/ircd/base.h +++ b/include/ircd/base.h @@ -16,7 +16,7 @@ namespace ircd // Binary -> Base58 encode suite constexpr size_t b58encode_size(const size_t &); size_t b58encode_size(const const_buffer &in); - string_view b58encode(const mutable_buffer &out, const const_buffer &in); + string_view b58encode(const mutable_buffer &out, const const_buffer &in) noexcept; // Base58 -> Binary decode suite constexpr size_t b58decode_size(const size_t &); @@ -26,12 +26,12 @@ namespace ircd // Binary -> Base64 conversion suite constexpr size_t b64encode_size(const size_t &); size_t b64encode_size(const const_buffer &in); - string_view b64encode(const mutable_buffer &out, const const_buffer &in); + string_view b64encode(const mutable_buffer &out, const const_buffer &in) noexcept; // Binary -> Base64 conversion without padding constexpr size_t b64encode_unpadded_size(const size_t &); size_t b64encode_unpadded_size(const const_buffer &in); - string_view b64encode_unpadded(const mutable_buffer &out, const const_buffer &in); + string_view b64encode_unpadded(const mutable_buffer &out, const const_buffer &in) noexcept; // Base64 -> Binary conversion (padded or unpadded) constexpr size_t b64decode_size(const size_t &); @@ -42,8 +42,8 @@ namespace ircd string_view b64tob58(const mutable_buffer &out, const string_view &in); string_view b58tob64(const mutable_buffer &out, const string_view &in); string_view b58tob64_unpadded(const mutable_buffer &out, const string_view &in); - string_view b64tob64url(const mutable_buffer &out, const string_view &in); - string_view b64urltob64(const mutable_buffer &out, const string_view &in); + string_view b64tob64url(const mutable_buffer &out, const string_view &in) noexcept; + string_view b64urltob64(const mutable_buffer &out, const string_view &in) noexcept; } inline size_t diff --git a/ircd/base.cc b/ircd/base.cc index f94eab9ae..8c2376907 100644 --- a/ircd/base.cc +++ b/ircd/base.cc @@ -24,6 +24,7 @@ namespace ircd::base ircd::string_view ircd::b64urltob64(const mutable_buffer &out, const string_view &in) +noexcept { //TODO: optimize with single pass string_view ret(in); @@ -35,6 +36,7 @@ ircd::b64urltob64(const mutable_buffer &out, ircd::string_view ircd::b64tob64url(const mutable_buffer &out, const string_view &in) +noexcept { //TODO: optimize with single pass string_view ret(in); @@ -145,6 +147,7 @@ ircd::base::b64_encode_permute_tab ircd::string_view ircd::b64encode(const mutable_buffer &out, const const_buffer &in) +noexcept { const auto pads { @@ -171,6 +174,7 @@ ircd::b64encode(const mutable_buffer &out, ircd::string_view ircd::b64encode_unpadded(const mutable_buffer &out, const const_buffer &in) +noexcept { const size_t res_len { @@ -362,6 +366,7 @@ ircd::b58decode(const mutable_buffer &buf, ircd::string_view ircd::b58encode(const mutable_buffer &buf, const const_buffer &in) +noexcept { auto p(begin(in)); size_t zeroes(0);