/* * Copyright (c) 2024, Tim Flynn * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include namespace Web::HTML { struct FileFilter { enum class FileType { Audio, Image, Video, }; struct MimeType { bool operator==(MimeType const&) const = default; String value; }; struct Extension { bool operator==(Extension const&) const = default; String value; }; using FilterType = Variant; void add_filter(FilterType); Vector filters; }; } namespace IPC { template<> ErrorOr encode(Encoder&, Web::HTML::FileFilter::MimeType const&); template<> ErrorOr decode(Decoder&); template<> ErrorOr encode(Encoder&, Web::HTML::FileFilter::Extension const&); template<> ErrorOr decode(Decoder&); template<> ErrorOr encode(Encoder&, Web::HTML::FileFilter const&); template<> ErrorOr decode(Decoder&); }