withConfiguration method

XcfDocument withConfiguration(
  1. String name,
  2. XcfConfiguration value
)

Replaces a configuration while retaining its parasite flags and terminator.

Implementation

XcfDocument withConfiguration(String name, XcfConfiguration value) {
  final List<XcfParasite> parasites = properties.parasites;
  final XcfParasite original = parasites.where((parasite) => parasite.name == name).lastOrNull ?? XcfParasite(name: name, data: [0]);
  return copyWith(
    properties: properties.replacing(
      XcfParasite.toProperty([
        ...parasites.where((parasite) => parasite.name != name),
        value.updateParasite(original),
      ]),
    ),
  );
}