1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 11:07:35 +00:00

Everywhere: Use to_number<T> instead of to_{int,uint,float,double}

In a bunch of cases, this actually ends up simplifying the code as
to_number will handle something such as:

```
Optional<I> opt;
if constexpr (IsSigned<I>)
    opt = view.to_int<I>();
else
    opt = view.to_uint<I>();
```

For us.

The main goal here however is to have a single generic number conversion
API between all of the String classes.
This commit is contained in:
Shannon Booth 2023-12-23 15:59:14 +13:00 committed by Andreas Kling
parent a4ecc65398
commit e2e7c4d574
155 changed files with 397 additions and 412 deletions

View file

@ -120,10 +120,7 @@ public:
[](FloatingPoint auto v) { return (T)v; },
[](Detail::Boolean v) -> T { return v.value ? 1 : 0; },
[](ByteString const& v) {
if constexpr (IsUnsigned<T>)
return v.to_uint<T>().value_or(0u);
else
return v.to_int<T>().value_or(0);
return v.to_number<T>().value_or(0);
},
[](Enum auto const&) -> T { return 0; },
[](OneOf<Gfx::IntPoint, Gfx::IntRect, Gfx::IntSize, Color, NonnullRefPtr<Gfx::Font const>, NonnullRefPtr<Gfx::Bitmap const>, GUI::Icon> auto const&) -> T { return 0; });