The UI-facing view of a Database service — the database-aware counterpart to
FromService.
Two restrictions compose:
FromService: every mutator return is rewritten to void; Observe
surfaces (and transaction overloads driving live gestures) pass through.
Action masking: any transaction shadowed by a same-named action is
removed from transactions. Calling a transaction directly is fine in
general, but once it is wrapped in an action the action is the intended
entry point — the UI must go through it, so the raw transaction is masked
out of the type and can no longer be called.
Masking runs before the restriction so FromService only ever sees the
transactions that survive.
The UI-facing view of a Database service — the database-aware counterpart to FromService.
Two restrictions compose:
void;Observesurfaces (and transaction overloads driving live gestures) pass through.transactions. Calling a transaction directly is fine in general, but once it is wrapped in an action the action is the intended entry point — the UI must go through it, so the raw transaction is masked out of the type and can no longer be called.Masking runs before the restriction so
FromServiceonly ever sees the transactions that survive.