diff options
author | Steven Le Rouzic <steven.lerouzic@gmail.com> | 2025-07-03 18:37:18 +0200 |
---|---|---|
committer | Steven Le Rouzic <steven.lerouzic@gmail.com> | 2025-07-04 20:44:04 +0200 |
commit | bcdad5b8762060c82a0b7840cb905e69ddb9a65e (patch) | |
tree | 468694d1662c61c12f813689520f43c8e1767538 /asl/strings/parse_number.hpp | |
parent | cca2e267241a90f238e424e47501b1e8613a5955 (diff) |
Diffstat (limited to 'asl/strings/parse_number.hpp')
-rw-r--r-- | asl/strings/parse_number.hpp | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/asl/strings/parse_number.hpp b/asl/strings/parse_number.hpp new file mode 100644 index 0000000..fae0841 --- /dev/null +++ b/asl/strings/parse_number.hpp @@ -0,0 +1,34 @@ +// Copyright 2025 Steven Le Rouzic +// +// SPDX-License-Identifier: BSD-3-Clause + +#pragma once + +#include "asl/types/status_or.hpp" +#include "asl/strings/string_view.hpp" + +namespace asl +{ + +template<typename T> +struct parse_number_result +{ + T value; + string_view remaining; +}; + +status_or<parse_number_result<float>> parse_float(string_view); +status_or<parse_number_result<double>> parse_double(string_view); + +status_or<parse_number_result<uint8_t>> parse_uint8(string_view, int base = 10); +status_or<parse_number_result<uint16_t>> parse_uint16(string_view, int base = 10); +status_or<parse_number_result<uint32_t>> parse_uint32(string_view, int base = 10); +status_or<parse_number_result<uint64_t>> parse_uint64(string_view, int base = 10); + +status_or<parse_number_result<int8_t>> parse_int8(string_view, int base = 10); +status_or<parse_number_result<int16_t>> parse_int16(string_view, int base = 10); +status_or<parse_number_result<int32_t>> parse_int32(string_view, int base = 10); +status_or<parse_number_result<int64_t>> parse_int64(string_view, int base = 10); + +} // namespace asl + |