register<C extends Component> method

void register<C extends Component>()

Registers C as a queryable type, so that query can answer in constant time. Does nothing if the type is already registered.

Implementation

void register<C extends Component>() {
  final queries = _queries ??= {};
  if (queries.containsKey(C)) {
    return;
  }
  final data = <C>[];
  for (final element in _elements) {
    if (element is C) {
      data.add(element);
    }
  }
  queries[C] = _QueryCache<C>(data);
}