/* * Copyright (c) 2026-present, the Ladybird developers. * * SPDX-License-Identifier: BSD-2-Clause */ #include #include #include namespace IPC { template<> ErrorOr encode(Encoder& encoder, Gfx::FontVariationSettings const& settings) { TRY(encoder.encode_size(settings.axes.size())); for (auto const& axis : settings.axes) { TRY(encoder.encode(axis.key.to_u32())); TRY(encoder.encode(axis.value)); } return {}; } template<> ErrorOr decode(Decoder& decoder) { auto axis_count = TRY(decoder.decode_size()); Gfx::FontVariationSettings settings; TRY(settings.axes.try_ensure_capacity(axis_count)); for (size_t i = 0; i < axis_count; ++i) { auto tag = Gfx::FourCC::from_u32(TRY(decoder.decode())); auto value = TRY(decoder.decode()); TRY(settings.axes.try_set(tag, value)); } return settings; } }