M method

MfuncTuple M(
  1. Uint8List candidbytes,
  2. CandidBytes_i start_i
)
override

Implementation

MfuncTuple M(Uint8List candidbytes, CandidBytes_i start_i) {
    Blob? id_value;
    late CandidBytes_i next_i;
    if (candidbytes[start_i] == 0) {
        next_i = start_i + 1;
    } else if (candidbytes[start_i] == 1) {
        MfuncTuple id_m_func_tuple = Vector(isTypeStance: true, values_type: Nat8()).M(candidbytes, start_i + 1);
        Vector<Nat8> id_value_vecnat8 = Vector.oftheList<Nat8>((id_m_func_tuple.item1 as Vector).cast<Nat8>());
        id_value = Blob.oftheVector(id_value_vecnat8);
        next_i = id_m_func_tuple.item2;
    }
    PrincipalReference principal_fer = PrincipalReference(id: id_value);
    if (principal_fer.isOpaque) {
        return MfuncTuple(principal_fer, next_i);
    } else {
        return MfuncTuple(Principal.oftheBytes(principal_fer.id!.bytes), next_i);
    }

}