/* * Copyright (c) 2023, Bastiaan van der Plaat <bastiaan.v.d.plaat@gmail.com> * * SPDX-License-Identifier: BSD-2-Clause */ #include "SelectItem.h" #include <LibIPC/Decoder.h> #include <LibIPC/Encoder.h> template<> ErrorOr<void> IPC::encode(Encoder& encoder, Web::HTML::SelectItem const& select_item) { TRY(encoder.encode(select_item.type)); TRY(encoder.encode(select_item.label)); TRY(encoder.encode(select_item.value)); TRY(encoder.encode(select_item.items)); TRY(encoder.encode(select_item.selected)); return {}; } template<> ErrorOr<Web::HTML::SelectItem> IPC::decode(Decoder& decoder) { auto type = TRY(decoder.decode<Web::HTML::SelectItem::Type>()); auto label = TRY(decoder.decode<Optional<String>>()); auto value = TRY(decoder.decode<Optional<String>>()); auto items = TRY(decoder.decode<Optional<Vector<Web::HTML::SelectItem>>>()); auto selected = TRY(decoder.decode<bool>()); return Web::HTML::SelectItem { type, move(label), move(value), move(items), selected }; }