enum SweepstorePrimitives { POINTER (8), ADDRESS_TABLE (-1); final int size; final bool arrayType; const SweepstorePrimitives(this.size, { this.arrayType = false }); } class SweepstorePointer { static const SweepstorePointer nullptr = SweepstorePointer(-1); final int address; const SweepstorePointer(this.address); bool get isNull => address == -1; operator ==(Object other) { if (identical(this, other)) return true; if (other is! SweepstorePointer) return false; return address == other.address; } @override String toString() => '0x${address.toRadixString(16)} ($address)'; } enum SweepstoreTicketState { FREE, WAITING, APPROVED, EXECUTING, COMPLETED, } enum SweepstoreTicketOperation { NONE, READ, MODIFY, WRITE, }