mirror of
https://github.com/fergalmoran/ladybird.git
synced 2025-12-22 09:19:03 +00:00
AK: Implement StringView::to_number<T> from String::to_number<T>
Do exactly what String does, then use StringView's implementation as String's new one. This should allow us to call to_number on a StringView.
This commit is contained in:
committed by
Andreas Kling
parent
b63eb4a4dd
commit
cdf84a3e36
@@ -181,14 +181,7 @@ public:
|
||||
template<Arithmetic T>
|
||||
Optional<T> to_number(TrimWhitespace trim_whitespace = TrimWhitespace::Yes) const
|
||||
{
|
||||
#ifndef KERNEL
|
||||
if constexpr (IsFloatingPoint<T>)
|
||||
return StringUtils::convert_to_floating_point<T>(bytes_as_string_view(), trim_whitespace);
|
||||
#endif
|
||||
if constexpr (IsSigned<T>)
|
||||
return StringUtils::convert_to_int<T>(bytes_as_string_view(), trim_whitespace);
|
||||
else
|
||||
return StringUtils::convert_to_uint<T>(bytes_as_string_view(), trim_whitespace);
|
||||
return bytes_as_string_view().to_number<T>(trim_whitespace);
|
||||
}
|
||||
|
||||
static ErrorOr<String> vformatted(StringView fmtstr, TypeErasedFormatParams&);
|
||||
|
||||
@@ -353,6 +353,19 @@ public:
|
||||
}());
|
||||
}
|
||||
|
||||
template<Arithmetic T>
|
||||
Optional<T> to_number(TrimWhitespace trim_whitespace = TrimWhitespace::Yes) const
|
||||
{
|
||||
#ifndef KERNEL
|
||||
if constexpr (IsFloatingPoint<T>)
|
||||
return StringUtils::convert_to_floating_point<T>(*this, trim_whitespace);
|
||||
#endif
|
||||
if constexpr (IsSigned<T>)
|
||||
return StringUtils::convert_to_int<T>(*this, trim_whitespace);
|
||||
else
|
||||
return StringUtils::convert_to_uint<T>(*this, trim_whitespace);
|
||||
}
|
||||
|
||||
private:
|
||||
friend class ByteString;
|
||||
char const* m_characters { nullptr };
|
||||
|
||||
Reference in New Issue
Block a user