1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 09:14:58 +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

@ -616,7 +616,7 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
auto const& sequence = sequence_value.value();
if (sequence.to_uint().has_value()) {
if (sequence.to_number<unsigned>().has_value()) {
modifier_buffer.append(sequence);
} else {
if (sequence == "" || sequence == "q" || sequence == "Q") {
@ -624,28 +624,28 @@ ErrorOr<int> serenity_main(Main::Arguments arguments)
} else if (sequence == "j" || sequence == "\e[B" || sequence == "\n") {
if (!emulate_more) {
if (!modifier_buffer.is_empty())
pager.down_n(modifier_buffer.to_byte_string().to_uint().value_or(1));
pager.down_n(modifier_buffer.to_byte_string().to_number<unsigned>().value_or(1));
else
pager.down();
}
} else if (sequence == "k" || sequence == "\e[A") {
if (!emulate_more) {
if (!modifier_buffer.is_empty())
pager.up_n(modifier_buffer.to_byte_string().to_uint().value_or(1));
pager.up_n(modifier_buffer.to_byte_string().to_number<unsigned>().value_or(1));
else
pager.up();
}
} else if (sequence == "g") {
if (!emulate_more) {
if (!modifier_buffer.is_empty())
pager.go_to_line(modifier_buffer.to_byte_string().to_uint().value());
pager.go_to_line(modifier_buffer.to_byte_string().to_number<unsigned>().value());
else
pager.top();
}
} else if (sequence == "G") {
if (!emulate_more) {
if (!modifier_buffer.is_empty())
pager.go_to_line(modifier_buffer.to_byte_string().to_uint().value());
pager.go_to_line(modifier_buffer.to_byte_string().to_number<unsigned>().value());
else
pager.bottom();
}