Fuses this
with other
.
When encoding, the resulting codec encodes with this
before encoding with other
.
When decoding, the resulting codec decodes with other
before decoding with this
.
In some cases one needs to use the inverted codecs to be able to fuse them correctly. That is, the output type of this
(T
) must match the input type of the second codec other
.
Examples:
final jsonToBytes = json.fuse(utf8); List<int> bytes = jsonToBytes.encode(["json-object"]); var decoded = jsonToBytes.decode(bytes); assert(decoded is List && decoded[0] == "json-object"); var inverted = json.inverted; var jsonIdentity = json.fuse(inverted); var jsonObject = jsonIdentity.encode(["1", 2]); assert(jsonObject is List && jsonObject[0] == "1" && jsonObject[1] == 2);
// TODO(floitsch): use better example with line-splitter once that one is // in this library. Codec<S, R> fuse<R>(Codec<T, R> other) { return _FusedCodec<S, T, R>(this, other); }
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dart.dev/stable/2.5.0/dart-convert/Codec/fuse.html