encodeTo method
Convert self to a slice and append it to the destination.
Implementation
@override
void encodeTo(
RuntimeVersion value,
Output output,
) {
StrCodec.codec.encodeTo(
value.specName,
output,
);
StrCodec.codec.encodeTo(
value.implName,
output,
);
U32Codec.codec.encodeTo(
value.authoringVersion,
output,
);
U32Codec.codec.encodeTo(
value.specVersion,
output,
);
U32Codec.codec.encodeTo(
value.implVersion,
output,
);
const SequenceCodec<ApiVersion>(ApiVersion.codec).encodeTo(
value.apis,
output,
);
// - `Core` version < 3 is a runtime version without a transaction version and state version.
// - `Core` version 3 is a runtime version without a state version.
// - `Core` version 4 is the latest runtime version.
final int? coreVersion = coreVersionFromApis(value.apis);
if (coreVersion == null || coreVersion >= 3) {
U32Codec.codec.encodeTo(
value.transactionVersion,
output,
);
}
if (coreVersion == null || coreVersion >= 4) {
U8Codec.codec.encodeTo(
value.stateVersion,
output,
);
}
}