T_forward method

Uint8List T_forward()
override

Implementation

Uint8List T_forward() {
    List<int> t_bytes = [];
    t_bytes.addAll(leb128.encodeSigned(FunctionReference.type_code));
    for (List<CandidType> types_list in [this.in_types, this.out_types]) {
        t_bytes.addAll(leb128.encodeUnsigned(types_list.length));
        for (CandidType ctype in types_list) {
            t_bytes.addAll(ctype.T_forward());
        }
    }
    int func_marks_len = 0;
    if (this.isQuery) { func_marks_len += 1; }
    if (this.isOneWay) { func_marks_len += 1; }
    t_bytes.addAll(leb128.encodeUnsigned(func_marks_len));
    if (this.isQuery) { t_bytes.add(1); }
    if (this.isOneWay) { t_bytes.add(2); }
    int type_table_i = put_t_in_the_type_table_forward(t_bytes);
    return leb128.encodeSigned(type_table_i);
}