/* * Copyright (c) 2024-2025, Tim Flynn * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include namespace Unicode { enum class ListFormatType { Conjunction, Disjunction, Unit, }; ListFormatType list_format_type_from_string(StringView); StringView list_format_type_to_string(ListFormatType); class ListFormat { public: static NonnullOwnPtr create(StringView locale, ListFormatType, Style); virtual ~ListFormat() = default; struct Partition { StringView type; Utf16String value; }; virtual Utf16String format(ReadonlySpan list) const = 0; virtual Vector format_to_parts(ReadonlySpan list) const = 0; protected: ListFormat() = default; }; }