Advanced

Expression creation

How rsx(...) creates a bound expression instance through factory, manager, cache lookup, and parser fallback.

Expression creation flow diagram

Detailed notes

  • `rsx(expressionString)(model)` asks `IExpressionFactory` to create a bound expression instance.
  • `ExpressionManager` creates one expression instance per context and expression and reuses it when requested again for the same context.
  • `ExpressionCache` is checked first by expression string.
  • On cache miss, `ExpressionParser` parses the expression, builds the tree, and stores that parsed prototype in cache.
  • For both cache hit and cache miss, rs-x clones the cached prototype and binds that clone to the passed model/context.
  • The final result is a bound `IExpression<T>` ready for evaluation and change notifications.