diff --git a/include/base/baseN.hpp b/include/base/baseN.hpp index 4d97f3f..2a1597b 100644 --- a/include/base/baseN.hpp +++ b/include/base/baseN.hpp @@ -7,13 +7,13 @@ namespace baseN { bool isValid(const char *str, const int8_t *map) noexcept; - bool isValid(const std::string &str, const int8_t *map) noexcept; + bool isValid(std::string_view str, const int8_t *map) noexcept; void encode(const uint8_t *data, uint64_t data_size, char *str, uint8_t base, const char *digits, uint64_t enc_size) noexcept; std::string encode(const std::vector &data, uint8_t base, const char *digits, uint64_t enc_size) noexcept; std::string encode(const std::vector &data, uint8_t base, const char *digits) noexcept; void decode(const char *str, uint8_t *data, uint64_t data_size, uint8_t base, const char *digits, const int8_t *map, uint64_t dec_size); - std::vector decode(const std::string &str, uint8_t base, const char *digits, const int8_t *map, uint64_t dec_size); - std::vector decode(const std::string &str, uint8_t base, const char *digits, const int8_t *map); + std::vector decode(std::string_view str, uint8_t base, const char *digits, const int8_t *map, uint64_t dec_size); + std::vector decode(std::string_view str, uint8_t base, const char *digits, const int8_t *map); } \ No newline at end of file diff --git a/include/base/hex.hpp b/include/base/hex.hpp index 7b8956a..9070d1e 100644 --- a/include/base/hex.hpp +++ b/include/base/hex.hpp @@ -7,9 +7,9 @@ namespace hex { bool isValid(const char *str) noexcept; - bool isValid(const std::string &str) noexcept; + bool isValid(std::string_view str) noexcept; void encode(const uint8_t *data, uint64_t data_size, char *str) noexcept; std::string encode(const std::vector &data) noexcept; void decode(const char *str, uint8_t *data, uint64_t data_size); - std::vector decode(const std::string &str); + std::vector decode(std::string_view str); } \ No newline at end of file diff --git a/src/baseN.cpp b/src/baseN.cpp index eef2893..d17561f 100644 --- a/src/baseN.cpp +++ b/src/baseN.cpp @@ -12,7 +12,7 @@ namespace baseN return std::all_of(sv.begin(), sv.end(), [map](char ch) { return map[(int8_t)ch] != -1; }); } - bool isValid(const std::string &str, const int8_t *map) noexcept + bool isValid(std::string_view str, const int8_t *map) noexcept { return baseN::isValid(str.data(), map); } @@ -122,7 +122,7 @@ namespace baseN } std::copy(res_data, res_data + std::min(dec_size, data_size), data); } - std::vector decode(const std::string &str, uint8_t base, const char *digits, const int8_t *map, uint64_t dec_size) + std::vector decode(std::string_view str, uint8_t base, const char *digits, const int8_t *map, uint64_t dec_size) { std::vector data(dec_size); baseN::decode(str.data(), data.data(), data.size(), base, digits, map, dec_size); @@ -131,7 +131,7 @@ namespace baseN { return byte != 0; })); return data; } - std::vector decode(const std::string &str, uint8_t base, const char *digits, const int8_t *map) + std::vector decode(std::string_view str, uint8_t base, const char *digits, const int8_t *map) { return baseN::decode(str, base, digits, map, str.size() * std::log(base) / std::log(256) + 1); } diff --git a/src/hex.cpp b/src/hex.cpp index 9ce8feb..c1c1c2b 100644 --- a/src/hex.cpp +++ b/src/hex.cpp @@ -31,7 +31,7 @@ namespace hex { return baseN::isValid(str, hexmap); } - bool isValid(const std::string &str) noexcept + bool isValid(std::string_view str) noexcept { return baseN::isValid(str, hexmap); } @@ -70,7 +70,7 @@ namespace hex data[i] = hexmap[(int8_t)sv[i * 2]] << 4 | hexmap[(int8_t)sv[i * 2 + 1]]; } } - std::vector decode(const std::string &str) + std::vector decode(std::string_view str) { std::vector data(str.size() / 2); hex::decode(str.data(), data.data(), data.size());