Skip to main content

Module search

Module search 

Source
Expand description

A search backend over resources held in memory: the ones the server ships rather than stores, which no index holds. Parameters get the semantics the Postgres and Elasticsearch backends give them; what only a query can do (follow a chain, _sort) is refused as not supported.

A search is a pipeline of pure functions over a snapshot of the resources: the parameters become criteria and a page, each resource is tested against the criteria, and the page is cut from the matches. Only evaluating a parameter’s FHIRPath expression is async, so the pass over the resources goes through the small async combinators at the end of this file. They take an async fn and its context rather than a closure: a closure held across an await can’t be proven Send (rust-lang/rust#102211).

Structs§

MemorySearch
Resources held at the system level: the same in every tenant and project.