/* * Copyright (c) 2023, Aliaksandr Kalenik * Copyright (c) 2022, Martin Falisse * * SPDX-License-Identifier: BSD-2-Clause */ #include "GridTrackPlacement.h" #include namespace Web::CSS { String GridTrackPlacement::to_string() const { StringBuilder builder; m_value.visit( [&](Auto const&) { builder.append("auto"sv); }, [&](AreaOrLine const& area_or_line) { if (area_or_line.line_number.has_value() && area_or_line.name.has_value()) { builder.appendff("{} {}", area_or_line.line_number->to_string(), *area_or_line.name); } else if (area_or_line.line_number.has_value()) { builder.appendff("{}", area_or_line.line_number->to_string()); } else if (area_or_line.name.has_value()) { builder.appendff("{}", *area_or_line.name); } }, [&](Span const& span) { builder.append("span"sv); if (!span.name.has_value() || span.value.is_calculated() || span.value.value() != 1) builder.appendff(" {}", span.value.to_string()); if (span.name.has_value()) builder.appendff(" {}", span.name.value()); }); return MUST(builder.to_string()); } }