From bcdad5b8762060c82a0b7840cb905e69ddb9a65e Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Thu, 3 Jul 2025 18:37:18 +0200 Subject: Add numbers parsing --- asl/strings/parse_number.hpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 asl/strings/parse_number.hpp (limited to 'asl/strings/parse_number.hpp') 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 +struct parse_number_result +{ + T value; + string_view remaining; +}; + +status_or> parse_float(string_view); +status_or> parse_double(string_view); + +status_or> parse_uint8(string_view, int base = 10); +status_or> parse_uint16(string_view, int base = 10); +status_or> parse_uint32(string_view, int base = 10); +status_or> parse_uint64(string_view, int base = 10); + +status_or> parse_int8(string_view, int base = 10); +status_or> parse_int16(string_view, int base = 10); +status_or> parse_int32(string_view, int base = 10); +status_or> parse_int64(string_view, int base = 10); + +} // namespace asl + -- cgit