Obj GAP_get_rec(Obj rec, UInt n) { if(!IS_REC(rec)) throw GAPException("Invalid attempt to read record"); if(!ISB_REC(rec, n)) throw GAPException(std::string("Unable to read value from rec")); return ELM_REC(rec, n); }
// This is a special method. It gets a boolean from a record, and assumes // it is 'false' if not present bool GAP_get_maybe_bool_rec(Obj rec, UInt n) { if(!IS_REC(rec)) throw GAPException("Invalid attempt to read record"); if(!ISB_REC(rec, n)) return false; Obj b = ELM_REC(rec, n); if(b == True) return true; if(b == False) return false; throw GAPException("Record element is not a boolean"); }
GAPRecord(Obj o) : record(o) { if(!IS_REC(o)) throw GAPException("Not a record"); }
bool isa(Obj recval) const { return IS_REC(recval); }
int GAP_IsRecord(Obj obj) { return obj && IS_REC(obj); }
static Obj FiltIS_REC(Obj self, Obj obj) { return (IS_REC(obj) ? True : False); }
Obj IsRecHandler ( Obj self, Obj obj ) { return (IS_REC(obj) ? True : False); }