mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 16:37:35 +00:00
LibWeb: Add abstract class Serializable
This adds the abstract class Serializable which platform objects defined as Serializable objects can implement to support their appropriate serialization and deserialization steps.
This commit is contained in:
parent
dcf5ff5178
commit
fc12402b49
1 changed files with 27 additions and 0 deletions
27
Userland/Libraries/LibWeb/Bindings/Serializable.h
Normal file
27
Userland/Libraries/LibWeb/Bindings/Serializable.h
Normal file
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* Copyright (c) 2024, Kenneth Myhra <kennethmyhra@serenityos.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <LibJS/Runtime/Realm.h>
|
||||
#include <LibWeb/HTML/StructuredSerialize.h>
|
||||
|
||||
namespace Web::Bindings {
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/structured-data.html#serializable-objects
|
||||
class Serializable {
|
||||
public:
|
||||
virtual ~Serializable() = default;
|
||||
|
||||
virtual StringView interface_name() const = 0;
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/structured-data.html#serialization-steps
|
||||
virtual WebIDL::ExceptionOr<void> serialization_steps(HTML::SerializationRecord&, bool for_storage) = 0;
|
||||
// https://html.spec.whatwg.org/multipage/structured-data.html#deserialization-steps
|
||||
virtual WebIDL::ExceptionOr<void> deserialization_steps(ReadonlySpan<u32> const&, size_t& position) = 0;
|
||||
};
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue