fuse<R> 方法
- Codec<
T, R> other
将当前对象与other对象熔断。
在编码时,结果编码解码器先使用当前对象编码,然后使用other对象编码。
在解码时,结果编码解码器先使用other对象解码,然后使用当前对象解码。
在某些情况下,需要使用反转编码解码器才能正确融合。也就是说,当前对象的输出类型(T)必须匹配第二个编码解码器other的输入类型。
示例
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);
}