LibIPC: Add a built-in encoder/decoder for AK::Time
This commit is contained in:
parent
8eeedce805
commit
1858163d3c
Notes:
sideshowbarker
2024-07-17 05:09:48 +09:00
Author: https://github.com/trflynn89 Commit: https://github.com/SerenityOS/serenity/commit/1858163d3c Pull-request: https://github.com/SerenityOS/serenity/pull/17600 Reviewed-by: https://github.com/linusg ✅
4 changed files with 20 additions and 0 deletions
Userland/Libraries/LibIPC
|
@ -62,6 +62,13 @@ ErrorOr<JsonValue> decode(Decoder& decoder)
|
|||
return JsonValue::from_string(json);
|
||||
}
|
||||
|
||||
template<>
|
||||
ErrorOr<Time> decode(Decoder& decoder)
|
||||
{
|
||||
auto nanoseconds = TRY(decoder.decode<i64>());
|
||||
return AK::Time::from_nanoseconds(nanoseconds);
|
||||
}
|
||||
|
||||
template<>
|
||||
ErrorOr<URL> decode(Decoder& decoder)
|
||||
{
|
||||
|
|
|
@ -87,6 +87,9 @@ ErrorOr<ByteBuffer> decode(Decoder&);
|
|||
template<>
|
||||
ErrorOr<JsonValue> decode(Decoder&);
|
||||
|
||||
template<>
|
||||
ErrorOr<Time> decode(Decoder&);
|
||||
|
||||
template<>
|
||||
ErrorOr<URL> decode(Decoder&);
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <AK/JsonObject.h>
|
||||
#include <AK/JsonValue.h>
|
||||
#include <AK/NumericLimits.h>
|
||||
#include <AK/Time.h>
|
||||
#include <AK/URL.h>
|
||||
#include <LibCore/AnonymousBuffer.h>
|
||||
#include <LibCore/DateTime.h>
|
||||
|
@ -73,6 +74,12 @@ ErrorOr<void> encode(Encoder& encoder, JsonValue const& value)
|
|||
return encoder.encode(value.serialized<StringBuilder>());
|
||||
}
|
||||
|
||||
template<>
|
||||
ErrorOr<void> encode(Encoder& encoder, Time const& value)
|
||||
{
|
||||
return encoder.encode(value.to_nanoseconds());
|
||||
}
|
||||
|
||||
template<>
|
||||
ErrorOr<void> encode(Encoder& encoder, URL const& value)
|
||||
{
|
||||
|
|
|
@ -118,6 +118,9 @@ ErrorOr<void> encode(Encoder&, ByteBuffer const&);
|
|||
template<>
|
||||
ErrorOr<void> encode(Encoder&, JsonValue const&);
|
||||
|
||||
template<>
|
||||
ErrorOr<void> encode(Encoder&, Time const&);
|
||||
|
||||
template<>
|
||||
ErrorOr<void> encode(Encoder&, URL const&);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue