LibIPC: Add a built-in encoder/decoder for AK::Time

This commit is contained in:
Timothy Flynn 2023-02-24 13:51:37 -05:00 committed by Tim Flynn
parent 8eeedce805
commit 1858163d3c
Notes: sideshowbarker 2024-07-17 05:09:48 +09:00
4 changed files with 20 additions and 0 deletions

View file

@ -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)
{

View file

@ -87,6 +87,9 @@ ErrorOr<ByteBuffer> decode(Decoder&);
template<>
ErrorOr<JsonValue> decode(Decoder&);
template<>
ErrorOr<Time> decode(Decoder&);
template<>
ErrorOr<URL> decode(Decoder&);

View file

@ -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)
{

View file

@ -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&);