diff options
-rw-r--r-- | README.md | 36 |
1 files changed, 18 insertions, 18 deletions
@@ -13,6 +13,24 @@ The various subclasses of `Decoder` together implement the [GVariant serialization][] specification. +## Example + +To parse a [GVariant][] value of type `"a(si)"`, which is an array of +pairs of [String][] and `int`, you can use the following code: + + record ExampleRecord(String s, int i) {} + + var decoder = + Decoder.ofArray( + Decoder.ofStructure( + ExampleRecord.class, + Decoder.ofString(StandardCharsets.UTF_8), + Decoder.ofInt().withByteOrder(ByteOrder.LITTLE_ENDIAN))); + + byte[] bytes = ...; + List<ExampleRecord> example = decoder.decode(ByteBuffer.wrap(bytes)); + + ## Installation ### Usage with Maven @@ -47,24 +65,6 @@ serialization][] specification. } -## Example - -To parse a [GVariant][] value of type `"a(si)"`, which is an array of -pairs of [String][] and `int`, you can use the following code: - - record ExampleRecord(String s, int i) {} - - var decoder = - Decoder.ofArray( - Decoder.ofStructure( - ExampleRecord.class, - Decoder.ofString(StandardCharsets.UTF_8), - Decoder.ofInt().withByteOrder(ByteOrder.LITTLE_ENDIAN))); - - byte[] bytes = ...; - List<ExampleRecord> example = decoder.decode(ByteBuffer.wrap(bytes)); - - [ByteBuffer]: https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/nio/ByteBuffer.html [GVariant]: https://docs.gtk.org/glib/struct.Variant.html [GVariant serialization]: https://people.gnome.org/~desrt/gvariant-serialisation.pdf |