readField method

Object? readField(
  1. String key
)

If this lua object is a table, unpacks _fields and returns the value. Otherwise null is returned.

Implementation

Object? readField(String key) {
  uses++;
  _onRead?.call(key);

  if (skipSemanitcs) return LuaObjectNoSemantics(key);

  if (isRef) {
    return deref().readField(key);
  } else if (isTable) {
    return switch (_fields?[key]) {
      final LuaObject obj => obj.deref(),
      null => null,
    };
  } else {
    // Not allowed except on tables.
    return null;
  }
}