OSTree: Use dictionary types where appropriate.
Change-Id: I58be4cbcdd663350d7524ec5ce97f1d3be10d7e1
diff --git a/jgvariant-ostree/src/main/java/eu/mulk/jgvariant/ostree/Metadata.java b/jgvariant-ostree/src/main/java/eu/mulk/jgvariant/ostree/Metadata.java
index cf838d3..8bb5255 100644
--- a/jgvariant-ostree/src/main/java/eu/mulk/jgvariant/ostree/Metadata.java
+++ b/jgvariant-ostree/src/main/java/eu/mulk/jgvariant/ostree/Metadata.java
@@ -3,29 +3,18 @@
import eu.mulk.jgvariant.core.Decoder;
import eu.mulk.jgvariant.core.Variant;
import java.nio.charset.StandardCharsets;
-import java.util.List;
+import java.util.Map;
/**
* A wrapper for a list of metadata fields.
*
* <p>Reference: (embedded in other data types)
*/
-public record Metadata(List<Field> fields) {
-
- /** A metadata field with a key and a value. */
- public record Field(String key, Variant value) {
-
- private static final Decoder<Field> DECODER =
- Decoder.ofStructure(
- Field.class, Decoder.ofString(StandardCharsets.UTF_8), Decoder.ofVariant());
-
- public static Decoder<Field> decoder() {
- return DECODER;
- }
- }
+public record Metadata(Map<String, Variant> fields) {
private static final Decoder<Metadata> DECODER =
- Decoder.ofArray(Field.decoder()).map(Metadata::new);
+ Decoder.ofDictionary(Decoder.ofString(StandardCharsets.UTF_8), Decoder.ofVariant())
+ .map(Metadata::new);
public static Decoder<Metadata> decoder() {
return DECODER;