/* * Copyright (c) 2023, Bastiaan van der Plaat * * SPDX-License-Identifier: BSD-2-Clause */ #include "SelectItem.h" #include #include template<> ErrorOr IPC::encode(Encoder& encoder, Web::HTML::SelectItemOption const& item) { TRY(encoder.encode(item.id)); TRY(encoder.encode(item.label)); TRY(encoder.encode(item.value)); TRY(encoder.encode(item.selected)); TRY(encoder.encode(item.disabled)); return {}; } template<> ErrorOr IPC::decode(Decoder& decoder) { auto id = TRY(decoder.decode()); auto label = TRY(decoder.decode()); auto value = TRY(decoder.decode()); auto selected = TRY(decoder.decode()); auto disabled = TRY(decoder.decode()); return Web::HTML::SelectItemOption { id, selected, disabled, {}, move(label), move(value) }; } template<> ErrorOr IPC::encode(Encoder& encoder, Web::HTML::SelectItemOptionGroup const& item) { TRY(encoder.encode(item.label)); TRY(encoder.encode(item.items)); return {}; } template<> ErrorOr IPC::decode(Decoder& decoder) { auto label = TRY(decoder.decode()); auto items = TRY(decoder.decode>()); return Web::HTML::SelectItemOptionGroup { move(label), move(items) }; } template<> ErrorOr IPC::encode(Encoder&, Web::HTML::SelectItemSeparator const&) { return {}; } template<> ErrorOr IPC::decode(Decoder&) { return Web::HTML::SelectItemSeparator {}; }