public void SetAssigned (MyBitVector vector) { if (Length == 1) vector [Offset] = true; else vector.SetRange (Offset, Length); is_ever_assigned = true; }
public void SetStructFieldAssigned (MyBitVector vector, string field_name) { if (vector[Offset]) return; int field_idx = TypeInfo.GetFieldIndex (field_name); if (field_idx == 0) return; var complex_field = TypeInfo.GetStructField (field_name); if (complex_field != null) { vector.SetRange (Offset + complex_field.Offset, complex_field.TotalLength); } else { vector[Offset + field_idx] = true; } IsEverAssigned = true; // // Each field must be assigned // for (int i = Offset + 1; i < TypeInfo.TotalLength + Offset; i++) { if (!vector[i]) return; } // // Set master struct flag to assigned when all tested struct // fields have been assigned // vector[Offset] = true; }