asynts
ae9f0e1cd8
AK: Add missing const in Span::operator==.
2020-09-21 09:37:49 +02:00
asynts
c8ed882b8e
AK: Add OutputMemoryStream::fill_to_end.
2020-09-15 20:36:45 +02:00
asynts
a7f786fc0a
AK: Use TypedTransfer in Span::copy_to.
2020-09-09 20:15:50 +02:00
asynts
ec1080b18a
Refactor: Replace usages of FixedArray with Vector.
2020-09-08 14:01:21 +02:00
asynts
1b3ecb01a5
AK: Add generic SimpleIterator class to replace VectorIterator.
2020-09-08 14:01:21 +02:00
asynts
b1fc8d2b38
AK: Span: Fix signature of copy_to() and copy_trimmed_to().
...
Two changes were made
1. copy_to() and copy_trimmed_to() now return how many bytes were
copied.
2. The argument was changed to Span<typename RemoveConst<T>::Type>
because the following would not work:
ReadonlyBytes bytes0;
Bytes bytes1;
// Won't work because this calls Span<const u8>::copy_to(Span<u8>)
// but the method was defined as Span<const u8>::copy_to(Span<const u8>)
bytes0.copy_to(bytes1);
2020-08-20 16:28:31 +02:00
asynts
df21487794
AK: Span: Allow slicing with zero length.
...
Previously, the following would not work:
Bytes{}.slice(0);
because it was asserted that `start < size()`.
2020-08-20 16:28:31 +02:00
asynts
aef6f00195
AK: Always call memmove in Span instead of memcpy.
...
https://github.com/SerenityOS/serenity/pull/3166#discussion_r471031704
2020-08-17 00:00:14 +02:00
asynts
525d51bbb5
AK: Add slice() overload to Span.
2020-08-15 21:21:18 +02:00
asynts
36080c5964
AK: Add fill() method to Span.
2020-08-15 21:21:18 +02:00
asynts
78849bbb48
AK: Add copy_to() and move_to() methods to AK::Span.
2020-08-15 21:21:18 +02:00
asynts
d4fe63d2ce
AK: Remove incorrect static assert in Span.h.
...
This assertion was added to prevent accitentally using stuff like
Span<int*> instead of Span<int>. But there can be spans of pointers.
2020-08-15 21:21:18 +02:00
AnotherTest
caedd05bd8
AK: Span<T>::operator=(const T&) => Span<T>::operator=(const Span<T>&)
2020-08-11 21:37:10 +02:00
asynts
5fa0fdb219
AK: Rename Span::subspan() to Span::slice().
2020-07-27 19:58:09 +02:00
asynts
8d2dba022e
AK: Add offset() method to Span.
2020-07-27 19:58:09 +02:00
asynts
c42450786c
AK: Add implicit conversion from nullptr to Span.
2020-07-27 19:58:09 +02:00
asynts
2b57891e07
AK: Add constructors to Bytes and ReadonlyBytes that take void pointers.
2020-07-27 19:58:09 +02:00
asynts
7036a9b6f7
AK: Define conversion from Span<T> to Span<const T> correctly.
...
I accidently wrote `Span<RemoveConst<T>>` when I meant
`Span<RemoveConst<T>::Type>`.
Changing that wouldn't be enough though, this constructor can only be
defined if T is not const, otherwise it would redefine the copy
constructor. This can be avoided by overloading the cast operator.
2020-07-27 19:58:09 +02:00
asynts
ac9c2bc492
AK: Implement Span which represents a contiguous sequence of objects.
...
This makes it possible to pass one object rather than pointer and length
individually.
2020-07-26 16:49:06 +02:00