fuse<R> 方法
- Codec<
T, R> other
与other融合。
在编码时,生成的编码器先使用other进行编码,然后再使用this。
在解码时,生成的编码器先使用this进行解码,然后再使用other。
在某些情况下,需要使用反转编码器才能正确融合。也就是说,this的输出类型(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);
}