mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 12:47:35 +00:00
LibCore: Add helper functions to read/write trivial values from streams
Co-Authored-By: Andrew Kaster <akaster@serenityos.org>
This commit is contained in:
parent
19bae983e4
commit
202175cf4c
1 changed files with 16 additions and 0 deletions
|
@ -108,6 +108,22 @@ public:
|
||||||
return !write_entire_buffer(buffer).is_error();
|
return !write_entire_buffer(buffer).is_error();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
requires(IsTriviallyDestructible<T>)
|
||||||
|
ErrorOr<T> read_trivial_value()
|
||||||
|
{
|
||||||
|
alignas(T) u8 buffer[sizeof(T)] = {};
|
||||||
|
TRY(read_entire_buffer(buffer));
|
||||||
|
return *bit_cast<T>(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
requires(IsTriviallyDestructible<T>)
|
||||||
|
ErrorOr<void> write_trivial_value(T const& value)
|
||||||
|
{
|
||||||
|
return write_entire_buffer({ &value, sizeof(value) });
|
||||||
|
}
|
||||||
|
|
||||||
/// Returns whether the stream has reached the end of file. For sockets,
|
/// Returns whether the stream has reached the end of file. For sockets,
|
||||||
/// this most likely means that the protocol has disconnected (in the case
|
/// this most likely means that the protocol has disconnected (in the case
|
||||||
/// of TCP). For seekable streams, this means the end of the file. Note that
|
/// of TCP). For seekable streams, this means the end of the file. Note that
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue