/* * Copyright (c) 2024, Liav A. * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include #include #include #include #include #include #include namespace Kernel { class FileSystemSpecificOption { public: static ErrorOr> create_as_unsigned(u64); static ErrorOr> create_as_signed(i64); static ErrorOr> create_as_boolean(bool); Variant const& property_value() const { return m_value; } private: explicit FileSystemSpecificOption(u64); explicit FileSystemSpecificOption(i64); explicit FileSystemSpecificOption(bool); Variant const m_value; }; using FileSystemSpecificOptions = HashMap, NonnullOwnPtr>; Optional parse_unsigned_filesystem_specific_option(FileSystemSpecificOptions const&, StringView name); Optional parse_signed_filesystem_specific_option(FileSystemSpecificOptions const&, StringView name); Optional parse_bool_filesystem_specific_option(FileSystemSpecificOptions const&, StringView name); }